我在 3D 空间中有三个点。我想用这些来构造一个圆(总是可以这样做,请参阅Circumscribed_circle。对于其中两个点,我还想找到由这些点和坐标原点形成的三角形高度。
计算需要快速——到目前为止我发现的方程涉及很多平方根,所以我想知道是否有人知道合适的算法或重述问题的方法。
提前致谢!
我在 3D 空间中有三个点。我想用这些来构造一个圆(总是可以这样做,请参阅Circumscribed_circle。对于其中两个点,我还想找到由这些点和坐标原点形成的三角形高度。
计算需要快速——到目前为止我发现的方程涉及很多平方根,所以我想知道是否有人知道合适的算法或重述问题的方法。
提前致谢!
您可以添加 4 维并将点提升到抛物面。然后得到凸包并投影回表面。这适用于 delaunay 三角剖分。这是一个类似的问题,但针对 2 维:这个 delaunay 三角剖分代码如何工作?.
对于外接圆,可以使用这个公式来完成
m = a + (|c-a|^2 [(b-a)x(c-a)]x(b-a) + |b-a|^2 (c-a)x[(b-a)x(c-a)]) / (2 | (b-a)x(c-a) |^2)
其中 a、b 和 c 是 R^3 中的点,m 是您要查找的外接圆的中心。不需要 sqrt。
资料来源: https ://www.ics.uci.edu/~eppstein/junkyard/circumcenter.html