旋转时相对于其他点计算点位置 - C#XNA

时间:2011-07-20 21:13:11

标签: c# math xna geometry rotation

我有一个小矩形,中心有一个点。我还有另一个点,就在矩形之外,当矩形垂直坐着而不是旋转时,矩形中心点左边10个像素。当矩形围绕其中心旋转时,我将如何将此外点保持在相对于矩形的相同位置?

感谢

2 个答案:

答案 0 :(得分:1)

在矩形的中心点开始“点”,然后将其翻译到您想要的位置,然后从那里旋转。

答案 1 :(得分:1)

以下是如何在XNA中围绕另一个点旋转一个点的示例:

public Vector2 RotatePoint(Vector2 pointToRotate, Vector2 centerOfRotation, float angleOfRotation)
{
    Matrix rotationMatrix = Matrix.CreateRotationZ(angleOfRotation);
    return Vector2.Transform(pointToRotate - centerOfRotation, rotationMatrix);
}