【问题标题】:Convex hull of parallel lines平行线的凸包
【发布时间】:2013-07-17 18:38:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: geometry convex-hull


    【解决方案1】:

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

    【讨论】:

    • 遇到了不知道如何将向量v旋转到z轴的问题。请帮我一下好吗?
    • @NMO:网上都有教程,例如here's one
    【解决方案2】:

    这是基于变分法的建议。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2014-03-26
      • 2015-08-09
      • 2021-01-22
      • 1970-01-01
      • 2020-04-27
      • 2017-03-28
      相关资源
      最近更新 更多