我在 3D 空间中有任意多条线,它们都彼此平行。现在我想找到这些线的凸包。为了说明这一点,我画了一张图:
我知道所有线的起点和终点(蓝点)。线路的长度并不相同。如果观看者朝线条方向(在图中标记为观看者方向)看,他只会看到点。现在我想找到这些点的凸包。希望我的意思很清楚。
我的想法是将起点或终点投影在垂直于线方向的平面上。之后,我可以对这些点应用某种凸包算法。但我不知道怎么办。
最佳答案
你的想法完全正确。实现此目的的一种方法是沿您的观察方向定义一个矢量v,然后将v旋转到z轴。相同的旋转会将直线转换为垂直线。然后放下端点的 z 坐标以获得投影点。然后计算凸包。网络上到处都有船体算法,包括我自己的 here .
关于geometry - 平行线的凸包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729784/