【发布时间】:2020-02-18 10:19:10
【问题描述】:
我有一个直径为 256px 的圆,中点在 xy[128,128] 上。我在圆上有第一个点,例如 X=0,Y=128。坐标原点在左上角。第一点和中间之间的线,连同这条线上的角度(从中间开始)创建在第三点与圆相交的三角形。我该如何计算这个点?
输入变量是:
- 圆上的点 xy
- 中间点
- 角度
预期输出为 x1,y1
【问题讨论】:
-
在几何中,您通常说的是“中心”,而不是“中间”...
-
所以你有一个圆心 C 和圆上的一个点 A 并且你想找到点 B 在圆上使 AC 和 CB 之间的角度具有给定值?
-
@MOehm 猜得好。这是有道理的。
-
基于@MOehm 的怀疑(我分享):首先转换您的坐标,使中心位于
{0, 0}(简单减法)。然后旋转有问题的点是通过与{ {cos(angle), -sin(angle)}, {sin(angle), cos(angle)} }的矩阵乘法来实现的。然后将坐标转换回您想要的系统(简单添加)。详情请见wikipedia。 -
@MOehm 是的,完全正确
标签: c++ algorithm geometry point angle