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

时间:2015-03-09 11:11:10

标签: c++ sfml trigonometry

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

我有一个看起来像这样的函数(我正在使用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;
 }

请帮我找到我需要的代码

1 个答案:

答案 0 :(得分:3)

最简单的方法是构建一个类,用于模拟两个 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