Определение местоположения точки относительно другой точки при повороте - C # XNA - PullRequest
3 голосов
/ 21 июля 2011

У меня есть маленький прямоугольник с точкой в ​​центре.У меня также есть другая точка, прямо за пределами прямоугольника, в 10 пикселях слева от центральной точки прямоугольника, когда прямоугольник расположен вертикально, а не повернут.Как мне сохранить эту внешнюю точку в том же месте относительно прямоугольника, когда прямоугольник вращается вокруг своего центра?

спасибо

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Вот пример того, как повернуть одну точку вокруг другой точки в XNA:

public Vector2 RotatePoint(Vector2 pointToRotate, Vector2 centerOfRotation, float angleOfRotation)
{
    Matrix rotationMatrix = Matrix.CreateRotationZ(angleOfRotation);
    return Vector2.Transform(pointToRotate - centerOfRotation, rotationMatrix);
}
1 голос
/ 21 июля 2011

Начните «точку» в центральной точке вашего прямоугольника, затем переведите ее туда, куда вы хотите, и затем поверните ее оттуда.

...