• ベストアンサー

2点を結ぶ直線を垂直に移動

2点(xa1,ya1とxa2,ya2)を結ぶ直線を垂直に移動(b)したときの2点(xb1,yb1とxb2,yb2)の算出方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.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   

GACHAPINA
質問者

お礼

ご回答ありがとうございます。 できました。

その他の回答 (3)

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.3

>直線に対して水平に移動という方が正しいかもしれません。 >bの距離離れた平行線を描きたいのです。 線間距離が b …ということですよネ。 …ならば、「2 点 を結ぶ直線に対して垂直」らしい。   

GACHAPINA
質問者

お礼

何度も回答ありがとうございます。 教えていただいた式で(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)
回答No.2

何に対して「垂直」か…。 「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 … とでも勘定するのでしょうネ。   

GACHAPINA
質問者

お礼

ご回答ありがとうございます。 何に対して『垂直』か?の件ですが、 説明不足で申し訳ございません。 直線に対して水平に移動という方が正しいかもしれません。 bの距離離れた平行線を描きたいのです。

  • info222_
  • ベストアンサー率61% (1053/1707)
回答No.1

>直線を垂直に移動(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).

関連するQ&A