C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

【C#,VS2022】線を、点Pを中心に据えて移動させたい

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■100887 / inTopicNo.1)  【C#,VS2022】線を、点Pを中心に据えて移動させたい
  
□投稿者/ エルデの王 (15回)-(2022/11/15(Tue) 17:02:59)

分類:[.NET 全般] 

お世話になっております。
環境はC#,VisualStudio2022Comです。

とある線(Shape.Line型)を、掲題の通り移動させたいと思っています。

例えば、(X1=0,Y1=50,X2=50,Y2=100)の線Aと、点P(X=30,Y=30)があるとして、
点Pの座標に線Aの中心を置きたいのです。(傾きはそのまま)
何か良い方法はないでしょうか?
以上です。

引用返信 編集キー/
■100888 / inTopicNo.2)  Re[1]: 【C#,VS2022】線を、点Pを中心に据えて移動させたい
□投稿者/ 魔界の仮面弁士 (3492回)-(2022/11/15(Tue) 18:50:18)
No100887 (エルデの王 さん) に返信
> とある線(Shape.Line型)を、掲題の通り移動させたいと思っています。

この Shape.Line とは何のことでしょうか?

PowerPoint / Excel / Publisher / Word 等のオートメーションで使われる
Office ライブラリの Shape クラスの Line プロパティのことでしょうか。
https://learn.microsoft.com/ja-jp/office/vba/api/word.shape.line

あるいは、WPF の System.Windows.Shapes.Line クラスのことでしょうか。
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.shapes.line?view=netframework-4.8

それとも自作の型ですか?


> 例えば、(X1=0,Y1=50,X2=50,Y2=100)の線Aと、点P(X=30,Y=30)があるとして、
> 点Pの座標に線Aの中心を置きたいのです。(傾きはそのまま)
線分A の中点 C は、Xc = (X1+X2)÷2, Yc = (Y1+Y2)÷2 で求まりますよね。
https://mathwords.net/tyutenzahyo

なので、線分A (X1, Y1)-(X2, Y2) の中点となる(Xc, Yc)と、
目標点P (Xp, Yp) とのズレを算出すれば良いのでは無いでしょうか。

Shape.Line 型というのが何のことなのか分からないのでコード例は書きませんが、
求めたオフセットを線分A の座標に足して線分A' を求めるか、
もしくは、線分A を描画する前に、原点座標をシフトしてから描画すれば良いと思います。
引用返信 編集キー/
■100889 / inTopicNo.3)  Re[2]: 【C#,VS2022】線を、点Pを中心に据えて移動させたい
□投稿者/ エルデの王 (16回)-(2022/11/15(Tue) 19:45:30)
魔界の仮面弁士さん
System.Windows.Shapes.Lineのことでした。申し訳ございません。

考え方を指導頂きありがとうございます。
中点Cを求めて、点Pから中点Cを引き、結果のXとYを線AのXとYに加算致します。

ありがとうございました!
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ