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