Geometry 平行线凸包

Geometry 平行线凸包,geometry,convex-hull,Geometry,Convex Hull,我在三维空间中有任意多条线,它们彼此平行。现在我想找到这些线的凸包。为了说明这一点,我画了一幅图: 我知道所有线条(蓝点)的起点和终点。这些线并不一样长。如果观察者朝着线条的方向看(图中标记为观察者方向),他只能看到点。现在我想找到这些点的凸包。希望我的意思很清楚 我的想法是在垂直于直线方向的平面上投影起点或终点。之后,我可以对这些点应用某种凸壳算法。但是我不知道怎么做。这里有一个基于变分法的建议 考虑将平行线段集合封闭在一条简单的闭合曲线中,并在约束条件下最小化曲线的面积,因为它必须封闭所有

我在三维空间中有任意多条线,它们彼此平行。现在我想找到这些线的凸包。为了说明这一点,我画了一幅图:

我知道所有线条(蓝点)的起点和终点。这些线并不一样长。如果观察者朝着线条的方向看(图中标记为观察者方向),他只能看到点。现在我想找到这些点的凸包。希望我的意思很清楚


我的想法是在垂直于直线方向的平面上投影起点或终点。之后,我可以对这些点应用某种凸壳算法。但是我不知道怎么做。

这里有一个基于变分法的建议

考虑将平行线段集合封闭在一条简单的闭合曲线中,并在约束条件下最小化曲线的面积,因为它必须封闭所有线段


您的“曲线”将是分段线性的,因此您可以在迭代中使用p.W基函数,尽管当算法需要删除一段时,您可能会遇到一些奇点。

您的想法完全正确。实现这一点的一种方法是沿观察方向定义向量v,然后将v旋转到z轴。相同的旋转将线转换为垂直线。然后删除端点的z坐标以获得投影点。然后计算凸包。网络上到处都有hull算法,包括我自己的。

我遇到了一个问题,我不知道如何将向量v旋转到z轴。你能给我一些帮助吗?@NMO:网上到处都有教程,例如。