• ベストアンサー

正三角形の重心の座標、各角の座標

去年、別の人がやっていたプログラムを見ていたのですが、どうしても分からない部分があったので、皆さんにお尋ねしたいと思います。よろしくお願いします。 前提として、xy平面状で、正三角形の重心C(x,y)と一つの角A(xa,ya)の座標が分かっています。 そのとき、他の2つの角(仮にB(xb,yb),C(xc,yc)とします)の座標を求めるにはどうしたら良いのでしょうか? プログラムでは、重心と、角Aのx系、y系との距離と、arctanとか使って角度を求めたりしているようなのですが、さっぱり分かりません。 皆様、よろしくお願いします。

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

  • ベストアンサー
  • eatern27
  • ベストアンサー率55% (635/1135)
回答No.2

C'(0,0)とするとA'(xa-x,ya-y) これを複素平面上に置換えて C'=0,A'=(xa-x)+(ya-y)iとすると B'=A'(cos120°+i*sin120°)=-{(xa-x)+(ya-y)√3}/2+{(xa-x)√3-(ya-y)}i C'=A'(cos(-120°)+i*sin(-120°)=-{(xa-x)-(ya-y)√3}/2-{(xa-x)√3+(ya-y)}i よって B=-{(xa-x)+(ya-y)√3-2x}/2+{(xa-x)√3-(ya-y)+2y}/2*i C=-{(xa-x)-(ya-y)√3-2x}/2-{(xa-x)√3+(ya-y)-2y}/2*i B( -{(xa-x)+(ya-y)√3+2x}/2 , {(xa-x)√3-(ya-y)+2y}/2 ) C( -{(xa-x)-(ya-y)√3-2x}/2 , -{(xa-x)√3+(ya-y)-2y}/2 ) 計算間違いしてるかも。

masya777
質問者

お礼

すばやい対応をしていただきありがとうございました。 計算までしていただき感謝しております。 これからも何かありましたらよろしくお願いします。

その他の回答 (1)

回答No.1

A(xa,ya), B(xb,yb), C(xc,yc), 重心G(xg,yg) とします. ベクトルGA=(xa-xg, ya-yg) を重心Gを中心に±120°回転したベクトルが→GBと→GCになりますので, 回転行列か複素数平面での回転を使うのが適当です. →GBを表す複素数:(xb-xg)+i(yb-yg)={(xa-xg)+i(ya-yg)}{cos120°+isin120°}={(xa-xg)+i(ya-yg)}{(-1+√3i)/2} →GCを表す複素数:(xc-xg)+i(yc-yg)={(xc-xg)+i(yc-yg)}{cos(-120°)+isin(-120°)}={(xc-xg)+i(yc-yg)}{(-1-√3i)/2} を展開, 整理・移項して xb+iyb などとしたときの実部がx座標, 虚部がy座標です.

masya777
質問者

お礼

すばやい対応ありがとうございました。 これからも何かありましたらお願いいたします。

関連するQ&A