Math 计算一个圆上两条切线的交点?
我尝试使用光线投射样式的函数来执行此操作,但无法获得任何可维护的结果。我想计算一个圆上两条切线的交点。这张图片应该有助于解释:Math 计算一个圆上两条切线的交点?,math,geometry,raycasting,Math,Geometry,Raycasting,我尝试使用光线投射样式的函数来执行此操作,但无法获得任何可维护的结果。我想计算一个圆上两条切线的交点。这张图片应该有助于解释: 我在谷歌上搜索了stackoverflow这个问题,但找不到任何类似的问题。有什么帮助吗?如果变量是: C = (cx, cy) - Circle center A = (x1, y1) - Tangent point 1 B = (x2, y2) - Tangent point 2 从圆心到两点A和B的直线分别为CA=A-C和CB=B-C 您知道切线与从中心开始的
我在谷歌上搜索了stackoverflow这个问题,但找不到任何类似的问题。有什么帮助吗?如果变量是:
C = (cx, cy) - Circle center
A = (x1, y1) - Tangent point 1
B = (x2, y2) - Tangent point 2
从圆心到两点A
和B
的直线分别为CA=A-C
和CB=B-C
您知道切线与从中心开始的直线垂直。在2D中,要得到一条垂直于向量的直线,只需取(y,-x)
(或(-y,x)
)
因此,您的两条(参数化)切线是:
L1(u) = A + u * (CA.y, -CA.x)
= (A.x + u * CA.y, A.y - u * CA.x)
L2(v) = B + v * (CB.y, -CB.x)
= (B.x + v * CB.y, B.x - v * CB.x)
然后计算两条线的交点,你只需要使用。彼得·亚历山大的答案假设你知道圆心,这在你的图中并不明显。 以下是一个不知道中心的解决方案: 点
C
(在您的图中)是A(x,y)
处切线与垂直于AB
的线L
的交点,将AB
切成两半。线L
的参数方程可推导如下:
AB
的中点是M=((x+x2)/2,(y+y2)/2)
,其中B(x2,y2)
。垂直于AB
的向量是N=(y2-y,x-x2)
。因此,直线L
的向量方程为
L(t)=M+tn
,其中t是一个实数。给定两条直线的方程式,你知道如何计算它们的交点吗?我想是的