如何根据圆上中点和其他点之间的角度计算圆上的点
How to calculate point on circle from angle between middle and other point on the circle
我有一个直径为 256px 的圆,中点在 xy[128,128] 上。我在圆上有第一个点,例如 X=0,Y=128。坐标原点在左上角。第一个点和中间点之间的线,连同这条线上的角度(从中间开始)创建三角形,该三角形在第三点与圆相交。我该如何计算这一点?
输入变量是:
- 圆上的 xy 点
- 中点
- 角度
预期输出为 x1,y1
原点绕中心点旋转角度公式:
x1 = middle.x + (x - middle.x) * cos(angle) - (y - middle.y) * sin(angle)
y1 = middle.y + (x - middle.x) * sin(angle) + (y - middle.y) * cos(angle)
(这是仿射变换 - 中间到原点的平移、关于原点的旋转和向后平移的组合)
不要忘记以弧度而不是像这样的度数来制作 cos 和 sin 参数:
cos(angle * M_PI / 180)
我有一个直径为 256px 的圆,中点在 xy[128,128] 上。我在圆上有第一个点,例如 X=0,Y=128。坐标原点在左上角。第一个点和中间点之间的线,连同这条线上的角度(从中间开始)创建三角形,该三角形在第三点与圆相交。我该如何计算这一点?
输入变量是:
- 圆上的 xy 点
- 中点
- 角度
预期输出为 x1,y1
原点绕中心点旋转角度公式:
x1 = middle.x + (x - middle.x) * cos(angle) - (y - middle.y) * sin(angle)
y1 = middle.y + (x - middle.x) * sin(angle) + (y - middle.y) * cos(angle)
(这是仿射变换 - 中间到原点的平移、关于原点的旋转和向后平移的组合)
不要忘记以弧度而不是像这样的度数来制作 cos 和 sin 参数:
cos(angle * M_PI / 180)