简短的问题:给定一个点P和一个线段L,如果能保证存在这样一个点,我如何在L上找到与P完全相距X的点(或多个点)?
问这个问题的更长的方法是使用图像。给定两个圆圈,一个是静态的,一个是动态的,如果你将动态的圆圈向直线移动到静态圆圈,那么很容易确定接触点(见1,绿点)。
现在,如果您以一定角度将动态圆移向静态圆,则确定接触点要困难得多(参见2,紫色点)。那部分我已经完成了。我想要做的是,在确定接触点后,减小角度并确定新的接触点(参见3,4,红点)。
在#4中,您可以看到角度减少了不到一半,新的接触点是直线点和原点之间的中间点。在#7中,您可以看到角度被平分,但新的接触点移动的距离远远超过了直线点的一半。
在我的情况下,我总是希望将角度减小到其原始值的5/6,但圆圈之间的原始角度和距离是可变的。圆圈的半径都相同。减小角度后我需要的实际数据是动态圆的新中心和静态圆之间的向量,即3,4,6和7中的蓝线,如果这样可以使计算更容易。< / p>
到目前为止,我知道我必须沿着紫色圆圈的中心线移动动圈,朝向静态圆的中心。然后圆圈必须直接移回动圈的原始位置。困难的部分是确切地知道它必须移动多远,以便它只是触及另一个圆圈。
答案 0 :(得分:1)
绘制一个与静止圆相同的圆心和两个半径之和的半径。移动圆心的平移线有两个交点。移动圆的中心在接触时的位置是这两个交叉点的距离较近。
答案 1 :(得分:1)
要回答你的简短问题,如果你在笛卡尔平面上,那么找到L线的等式(给定L的两个端点,这很简单)。找到垂直于所述直线的方程,该方程通过P(这是通过取斜率的负倒数,插入P的x和y值,并求解截距)来完成的。然后使用它们的方程作为单个方程组(x和y相等)找到两条垂直线相交的点。然后找到交点和点P之间的距离,点P是三角形的一条腿。最后,根据距离和你给出的距离X,使用毕达哥拉斯定理来找到三角形另一条腿的距离。现在你要找的点是L上的一个点,也是L坐的那一行。因此,使用您刚刚获得的距离,您之前找到的交点以及L's线的等式,您可以找到所需的点坐标。最多只能有2个这样的点,所以你需要测试的是所找到的点的坐标是否实际上在L上,或者在L之上,但仍然在它的线上。对不起,答案很长,如果你想要一个几何解释而不是一个代数。
答案 2 :(得分:0)
让细分的末尾为A
和B
,固定圆的中心为C
。设两个圆的半径为r
。让碰撞时刻移动圆的中心为D
。我们有一个三角形ACD
,其中我们知道:距离AC
,因为它是常数,角度为DAC
,因为这是你要改变的,距离{{1} },这正是CD
。从理论上讲,两边和角度应该可以让你得到三角形的其余部分......