用C ++旋转点网格

时间:2015-06-20 01:11:17

标签: c++ math rotation grid geometry

如果我有一个定义为

的点结构数组
struct Point{

    float x;
    float y;

};

如何以给定的角度旋转此数组中的点?

举个例子:

Example

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

float x_old = p.x; float y_old = p.y;
p.x = x_old * cos(a) - y_old * sin(a);
p.y = x_old * sin(a) + y_old * cos(a);

当然,如果你以相同的角度旋转多个点,你将需要保存罪恶和cos,而不是每点计算两次。