小编Dat*_*ypt的帖子

根据旋转角度计算新的点偏移量?

我正在处理一个过去几周的申请,涉及一些三角学,目前我被困住了.如下图所示,我有一个圆形项目(位置#1的绿色圆圈),我知道中心点(让我们称之为X1,Y1).圆圈有另一个点(橙色圆圈)偏离中心位置 - 在另外两个标记(蓝色圆圈)之间.这些标记可以四处移动.计算橙色点的坐标(我们称之为X2,Y2),并计算蓝色线相对于圆的水平线的角度(称之为角度).

图

我可以通过以下方式计算圆心和点之间的差异:

deltaX = X2-X1

deltaY = Y2-Y1

我需要移动并旋转绿色圆圈(CW或CCW - 以较短者为准)从它的起始位置(位置1)到位置2.这意味着角度可以是负的或正的.蓝线必须以垂直方向结束,橙色点位于位置2的中心(红色方块).我知道位置2中心的坐标(让我们称之为X3,Y3).位置#1和位置#2彼此正好相差90度.

我以为我可以使用一些计算点的旋转的trig标识公式,如下所示:

offsetX = deltaX*cos(90-Angle) - deltaY*sin(90-Angle)

offsetY = deltaX*sin(90-Angle)+ deltaY*cos(90-Angle)

当我移动/旋转到位置2时,我希望这些偏移是我需要将圆圈调整到它的新中心.

X3 = X3 + offsetX

Y3 = Y3 + offsetY

但是,当我尝试使用这个数学时,它不会将圆圈的橙色标记放在方形的中心.不确定我的方程和计算是否正确,基于旋转角度(正或负,CW或CCW)或我是否正确使用角度(我从90度减去已知角度).如何正确计算最终点/位置?任何帮助和示例将不胜感激!

非常感谢您的宝贵时间!

.net c# math robotics trigonometry

6
推荐指数
1
解决办法
4484
查看次数

标签 统计

.net ×1

c# ×1

math ×1

robotics ×1

trigonometry ×1