2

我在 3D 空间中有任意多条相互平行的线。现在我想找到这些线的凸包。为了说明这一点,我画了一张图: 在此处输入图像描述

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

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

4

2 回答 2

1

这是基于变分法的建议。

考虑将平行线段的集合封闭在一个简单的闭合曲线中,以最小化曲线的面积,因为它必须包含所有线段。

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

于 2013-07-18T17:42:03.183 回答
1

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

于 2013-07-18T20:56:13.780 回答