Math 如何从3个点和半径找到球体中心?
我有三个3D点p1、p2和p3以及球体半径。如何从3个点和半径找到球体中心 我希望有两个3D点作为解决方案,因为有两个球体满足要求 谢谢Math 如何从3个点和半径找到球体中心?,math,graphics,3d,Math,Graphics,3d,我有三个3D点p1、p2和p3以及球体半径。如何从3个点和半径找到球体中心 我希望有两个3D点作为解决方案,因为有两个球体满足要求 谢谢 找到包含所有三个点的平面p。在那架飞机上 点决定三角形 找到这个三角形周围的圆。设C表示中心 这个圆圈 找到垂直于p的线,并在C处穿过 在这条线上,找到与目标距离为所需距离的那两个点 圈 我忽略了退化案例。有很多方法可以将其形式化。这里有一个例子(基本上和阿里建议的一样,但需要更多的数学运算):你想要找到分数 (a) 与p1、p2、p3等距,带 (b) 距离正
我忽略了退化案例。有很多方法可以将其形式化。这里有一个例子(基本上和阿里建议的一样,但需要更多的数学运算):你想要找到分数 (a) 与p1、p2、p3等距,带 (b) 距离正好是R 首先,根据找到外接圆的中心(参见“嵌入d尺寸的三角形外接圆”部分): 用
p21=p2-p1
,p31=p3-p1
,n=cross(p21,p31)
(a)项中的点位于通过该点的直线上,且与包含p1、p2、p3的平面正交,因此其方程式为
p(t) = p0 + n * t
将此替换为
dist(p1, p)^2 = dot(p - p1, p - p1) = R^2
求二次方程
dot(n, n) * t^2 - 2*dot(n, p0-p1) * t + dot(p0-p1, p0-p1) = R^2
实际上,n
和(p0-p1)
是正交的,所以左边的第二个加数是0,并且
t1 = sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n)),
t2 = -sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n))
(注意p1
inp0
如何取消)。将这些替换为p(t)
,以获得答案
t1 = sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n)),
t2 = -sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n))