使用另一个点和它们之间的角度计算圆上的点

Working out the point on a circle using another point and the angle between them

我在一个圆心为 (0, 0) 的圆上有一个点,称为 (x1, y1),一个角称为 A(以度为单位)。我想找到一个函数,让我找到圆上的另一个点 (x2, y2),如下所示:

我有一个看起来像这样的函数(我正在使用 c++ sfml)

//sf::Vector2f has two members, x and y, which are both quotes. 
sf::Vector2f findPoint(int A, sf::Vector2f x1y1) 
{
    sf::Vector2f x2y2;
    // Code I need
    return x2y2;
 }

请帮我找到我需要的代码

最简单的方法是构建一个 class 来模拟 Cartiesian 极坐标中的一个点。

然后您可以使用 (x1, x2) -> 极坐标 -> 添加角度 -> 笛卡尔坐标。

或者,您可以使用广义旋转矩阵

    /  \    /               \/  \ 
    |x2|  = | cos A   -sin A||x1| 
    |y2|    | sin A    cos A||y1| 
    \  /    \               /\  / 

x2 = y1 cos A - y1 sin Ay2 = x1 sin A + y1 cos A