Math 圆到切线映射

Math 圆到切线映射,math,vector,geometry,computational-geometry,vectormath,Math,Vector,Geometry,Computational Geometry,Vectormath,假设给你一个圆,线AB包含它的中心O,这样a和B在圆上(OA=OB=radius)。在点A上绘制切线t,并且 我应该计算圆的某些点(a,b,c,d…)到切线上的点(at,bt,ct,dt…)的映射,使得距离Aa(沿圆的距离)与距离Aat(沿切线的距离)相同(对于距离Ab,Ac,Ad也相同)。但是,在这里,应该考虑某些约束:从a到b的圆的一侧的圆的点(在(a,b,c,d)之间)应该放在切线的一侧(越近),从圆的另一侧的点形成a到b应该放在另一侧。基本上,圆应该在B处分割,然后映射到切线。我希望这个

假设给你一个圆,线AB包含它的中心O,这样a和B在圆上(OA=OB=radius)。在点A上绘制切线t,并且 我应该计算圆的某些点(a,b,c,d…)到切线上的点(at,bt,ct,dt…)的映射,使得距离Aa(沿圆的距离)与距离Aat(沿切线的距离)相同(对于距离Ab,Ac,Ad也相同)。但是,在这里,应该考虑某些约束:从a到b的圆的一侧的圆的点(在(a,b,c,d)之间)应该放在切线的一侧(越近),从圆的另一侧的点形成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,b,c,d)。问题是“正确的边”的确定,这意味着我应该如何确定该点是应该映射到切线的一侧还是另一侧。如何确定这一点

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


欢迎就如何做到这一点提出任何建议。如果我不够精确,我会详细说明。

要确定你在圆圈的哪一边,你基本上需要确定你在圆圈的哪一边。关于这个问题的答案,请参见,例如,要确定你在圆圈的哪一边,你基本上需要确定你在圆圈的哪一边。关于这个问题的答案,请参见,例如,

一个更好的建议是计算坐标变换,将圆映射为以原点为中心的单位圆,这样A将具有坐标(1,0)(和B分别为(-1,0))。 变换应该是旋转扩张。 现在,Aa上的距离就是以弧度测量的角度aOA。所以你可以很容易地计算,它是(1),其中(x,y)是a的坐标


现在,您只需要返回原始坐标系,应用反变换。

更好的建议是计算坐标变换,将圆映射为以原点为中心的单位圆,这样A将具有坐标(1,0)(和B分别为(-1,0))。 变换应该是旋转扩张。 现在,Aa上的距离就是以弧度测量的角度aOA。所以你可以很容易地计算,它是(1),其中(x,y)是a的坐标


现在,您只需要返回原始坐标系,应用逆变换。

这是一个非常重要的描述。一张图表会很有帮助!这是一个相当重的描述。一张图表会很有帮助!谢谢。我需要知道以下内容是否正确(以及背后的原因):谢谢。假设我确定了点K相对于线AB的“边”(这是由一个正号确定的,比如说,在“确定点位于线的哪一侧”上建议的方法)。我还找到了切线的方程。现在,我想得到切线t上的新点Kt,它与K在AB线的同一侧,但Kt应该在切线t上。假设距离AKt应该是p。如何将Kt放置在正确的一侧?谢谢谢谢。我需要知道以下内容是否正确(以及背后的原因):谢谢。假设我确定了点K相对于线AB的“边”(这是由一个正号确定的,比如说,在“确定点位于线的哪一侧”上建议的方法)。我还找到了切线的方程。现在,我想得到切线t上的新点Kt,它与K在AB线的同一侧,但Kt应该在切线t上。假设距离AKt应该是p。如何将Kt放置在正确的一侧?谢谢,谢谢。是否有一个“自动”公式用于计算给定圆弧端点的弧长(一个包含角度的公式)?这个公式应该包括原始的弧内点(而不是变换的结果)@user:嗯,弧长等于弧度角乘以半径的乘积。假设我确定了点K相对于线AB的“边”(这是由一个正号确定的,比如说,在“确定点位于线的哪一侧”上建议的方法)。我还找到了切线的方程。现在,我想得到切线t上的新点Kt,它与K在AB线的同一侧,但Kt应该在切线t上。假设距离AKt应该是p。如何将Kt放置在正确的一侧?Thanks@user当前位置如果采用我的方法,这是完全可以避免的问题之一。好吧,如果你想走自己的路,你需要做以下几件事:1。考虑点<代码> C <代码>,其中角度<代码> AOC < /代码>为90。这个