假设您给您一个包含其中心O的线AB的圆,使A和B在圆上(OA = OB = RADIUS)。在点A上绘制切线t,我应该计算圆的某些点(a,b,c,d ...)的映射到切线上的点(at,bt,ct,dt,。 。但是,在这里,应考虑某些约束:圆的那些点(在(a,b,c,d)中)是从圆的一侧从a到b的一侧,应放在切线的一侧(较近),从圆的另一侧a到B的另一侧应放在另一侧。基本上,应在B处分开圆,然后映射到切线。我希望这种解释足够足够。

应该注意的是,我有有关A,B,O,A,B,C,D的坐标的信息。我应该计算(AT,BT,CT,DT)。为了解决这个问题,我有两种方法,但是我不确定如何确保它们始终正确工作。

1)我计算点A处的切线方程。然后,对于每个点(a,b,c,d),我计算了距a(沿圆圈)的距离,并使用这些距离来计算(at,bt,ct, ,dt ...)沿切线。我在这里不知道的是如何计算A到A(A,B,C,D)的距离。问题是“适当的一侧”确定,这意味着我应该如何确定该点是否应在切线的一侧映射。确定这一点的方法是什么。

2)我计算点A处的切线方程。然后,对于每个点(a,b,c,d),我计算了距a(沿圆圈)的距离,并使用这些距离来计算(at,bt,ct, ,dt ...)沿切线。为了确定给定点的“适当侧”,我可能会使用该点对切线的投影。但是,即使这样,我怎么知道“哪一方”?也许有更简单的方法可以做到这一点。

欢迎任何有关如何执行此操作的建议。如果我还不够精确,我会详细说明。

有帮助吗?

解决方案

为了确定您所处的圆的“侧面”,您基本上需要确定行的哪一侧 AB 轮到你了。为此答案,请参阅EG 确定一条点的哪一侧位于.

其他提示

一个更好的建议是计算一个坐标转换,该坐标转换将圆圈映射到原点处的中心,以便A分别具有坐标(1,0)(和B)(-1,0)。转换应随旋转而扩张。现在,AA上的距离只是弧度测量的角度AOA。因此,您可以轻松地计算出来(1, atan2(y,x))其中(x,y)是a的坐标。

现在,您唯一需要的是返回原始坐标系,应用反向转换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top