首先要记住四个公式,就是三角函数的和差公式:
sin(A+B)=sinAcosB+cosAsinB | sin(A-B)=sinAcosB-sinBcosA | ||
cos(A+B)=cosAcosB-sinAsinB | cos(A-B)=cosAcosB+sinAsinB |
接下来看图:
这个图很清晰了,比如要知道旋转后的P'(x',y'),那么可以先求P(x,y),当然在实际编程中,P(x,y)的坐标是已知条件。
cosα = x / r 可以得到 x = r * cosα
sinα = y / r 可以得到 y = r * sinα
而cos(α+θ) = x' / r 可以得到 x' = r * cos(α + θ)
sin(α + θ) = y' / r可以得到 y' = r * sin(α + θ)
再根据三角函数的和差公式可以知道
x' = r*cosα*cosθ - r*sinα*sinθ = x * cos θ – y * sin θ
y' = r*sinα*cosθ+r*cosα*sinθ = y * cos θ + x * sin θ