- ベストアンサー
2点を結ぶ直線を垂直に移動
2点(xa1,ya1とxa2,ya2)を結ぶ直線を垂直に移動(b)したときの2点(xb1,yb1とxb2,yb2)の算出方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>ピタゴラス流なら、 ↓ 訂正 Dax = xa2 - xa1 Day = ya2 - ya1 S = √(Dx^2 + Dy^2) として、 Dbx = -bDay/S ← これの (変化分) 符号逆転を忘却してました Dby = bDax/S を使い (k = 1, 2)、 xbk = xak + Dbx ybk = yak + Dby
その他の回答 (3)
- 178-tall
- ベストアンサー率43% (762/1732)
>直線に対して水平に移動という方が正しいかもしれません。 >bの距離離れた平行線を描きたいのです。 線間距離が b …ということですよネ。 …ならば、「2 点 を結ぶ直線に対して垂直」らしい。
お礼
何度も回答ありがとうございます。 教えていただいた式で(xa1,ya1)=(0.5,0.5)、(xa2,ya2)=(1,1)、b=0.5で計算してみましたが、 xa直線の上に重なってしまいました。 >S = √(Dx^2 + Dy^2)←Dx=Dax,Dy=Dayという理解でokでしょうか? すると下記になりました。 -------------------------- Dax = xa2 - xa1=0.5 Day = ya2 - ya1=0.5 S = √(Dax^2 + Day^2)=0.707 Dbx = bDay/S=0.3535 Dby = bDax/S=0.3535 xb1 = xa1 + Dbx=0.853 yb1 = ya1 + Dby=0.853 xb2 = xa2 + Dbx=1.353 yb2 = ya2 + Dby=1.353 --------------------------
- 178-tall
- ベストアンサー率43% (762/1732)
何に対して「垂直」か…。 「2 点 を結ぶ直線」に対してならば…? ピタゴラス流なら、 Dax = xa2 - xa1 Day = ya2 - ya1 S = √(Dx^2 + Dy^2) として、 Dbx = bDay/S Dby = bDax/S を使い (k = 1, 2)、 xbk = xak + Dbx ybk = yak + Dby … とでも勘定するのでしょうネ。
お礼
ご回答ありがとうございます。 何に対して『垂直』か?の件ですが、 説明不足で申し訳ございません。 直線に対して水平に移動という方が正しいかもしれません。 bの距離離れた平行線を描きたいのです。
- info222_
- ベストアンサー率61% (1053/1707)
>直線を垂直に移動(b) 垂直上方にbだけ平行移動するのであれば y座標にbを加えれば良いから 2点を結ぶ線分: (xb1,yb1)~(xb2,yb2)= (xa1,ya1+b)~(xa2,ya2+b) つまり (xb1,yb1)=(xa1/ya1+b), (xb2,yb2)=(xa2,ya2+b).
お礼
ご回答ありがとうございます。 できました。