使用另一个点和它们之间的角度计算圆上的点
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 A
和 y2 = x1 sin A + y1 cos A
我在一个圆心为 (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 A
和 y2 = x1 sin A + y1 cos A