我在一个带有中心(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;
}
请帮我找到我需要的代码
答案 0 :(得分:3)
最简单的方法是构建一个类,用于模拟两个 Cartiesian 和极坐标中的点。
然后你可以使用(x1,x2) - >到极地 - >添加角度 - >笛卡儿。
或者,您可以使用广义旋转矩阵:
/ \ / \/ \
|x2| = | cos A -sin A||x1|
|y2| | sin A cos A||y1|
\ / \ /\ /
即。 x2 = y1 cos A - y1 sin A
和y2 = x1 sin A + y1 cos A