ある特定の位置から指定角度回転した座標を求める方法。
回転角度:Α
元座標X:X
元座標Y:Y
移動後座標X:X2
移動後座標Y:Y2
回転中心X:CX
回転中心Y:CY
回転中心を原点として考えるなら、その場合のX,YをXL,YLとすると、回転中心から原点までの距離を引くので、
XL = X – CX
YL = Y – CY
となる。
その場合の回転座標をそれぞれ、XL2、YL2として求めると
XL2 = cosA*XL – sinA*YL
YL2 = sinA*XL * cosA*YL
原点での計算から回転中心での計算に戻すために、回転中心の距離をそれぞれプラスする。
X2 = CX + cosA*XL – sinA*YL
Y2 = CY + sinA*XL * cosA*YL
ということで、回転中心・回転角度・回転の起点がわかれば、移動位置を出すことができる。
X2 = CX + cosA*(X – CX) – sinA*(Y – CY)
Y2 = CY + sinA*(X – CX) * cosA*(Y – CY)
GDで円グラフを書いたときに、HTML側でくりっかぶるまっぷをしようした。そのときに、それぞれの項目について回転角度からこの計算を使ってエリアを指定した。