我在 3D 空间中有任意多条相互平行的线。现在我想找到这些线的凸包。为了说明这一点,我画了一张图:
我知道所有线的起点和终点(蓝点)。行不一样长。如果观察者沿着线条的方向看(图中标记为观察者方向),他只会看到点。现在我想找到这些点的凸包。希望它清楚我的意思。
我的想法是将起点或终点投影在垂直于线方向的平面上。之后,我可以对这些点应用某种凸包算法。但我不知道怎么做。
我在 3D 空间中有任意多条相互平行的线。现在我想找到这些线的凸包。为了说明这一点,我画了一张图:
我知道所有线的起点和终点(蓝点)。行不一样长。如果观察者沿着线条的方向看(图中标记为观察者方向),他只会看到点。现在我想找到这些点的凸包。希望它清楚我的意思。
我的想法是将起点或终点投影在垂直于线方向的平面上。之后,我可以对这些点应用某种凸包算法。但我不知道怎么做。
这是基于变分法的建议。
考虑将平行线段的集合封闭在一个简单的闭合曲线中,以最小化曲线的面积,因为它必须包含所有线段。
您的“曲线”将是分段线性的,因此您可以在迭代中使用 PW 基函数,尽管当算法需要删除一个段时您可能会遇到一些奇点。
你的想法完全正确。实现此目的的一种方法是沿您的观察方向定义一个向量v,然后将v旋转到z轴。相同的旋转将线转换为垂直线。然后放下端点的z坐标以获得投影点。然后计算凸包。网络上到处都有船体算法,包括我自己的。