在二维空间中,我有一个坐标为 x1 和 y1 的对象,它面向特定的方向,我们称之为“查看器”。开始时,测量对象旋转的角度为 0,因此对象开始时始终面向相同的方向。角度由称为 yrot 的变量测量。
令 D 为与由 sqrt ((x1-x2)^2 + (y1-y2)^2) 确定的对象的距离,考虑此距离已知。
现在,知道了观察者坐标、D 距离和 yrot 角,我想确定距离观察者对象面部距离为 D 的对象的坐标 x2、y2。
为了澄清这一点,我将添加一个简单的矩阵来解释我想要的:
Z 0 0
0 0 0
0 0 伏
V 是观察者,V 面向 Z。我只对 V 前面有一个物体感兴趣(在特定距离处)。换句话说,假设 Z 与 V 的距离为 D(已知),我只对 Z 是一个对象感兴趣,没有别的。
我相信所需的坐标是 x2 = x1 (+/-) d* sin yrot; y2 = y1 (+/-) d*cos yrot; 我不确定这是否是正确的公式,而且它似乎不起作用。我也不确定第二个操作数的符号。
如果有什么不清楚的地方,请留下评论,我会尽我所能尽快回答。
谢谢!
稍后编辑:|| <- 面向观众的位置,yrot = 0; [] <-查看器
= [] <- viewer yrot = 90 degrees.
这应该澄清什么是yrot。此外,对象可以随心所欲地旋转(> 2 PI),它可以顺时针和逆时针旋转。
Charles Bretana 的回答似乎几乎是正确的,我不确定它是否涵盖过度旋转(旋转 > 360 度)和不同方向的旋转。