【问题标题】:Convex hull of all co-linear points?所有共线点的凸包?
【发布时间】:2014-10-17 18:24:18
【问题描述】:

这是非常微不足道的,但我仍然想知道如果点的特征是线 x = y 即所有点都是共线的,那么凸包会是什么。这与 2 个点的情况相同,即线连接所有点的分段

【问题讨论】:

  • 两个最远的端点将是构成凸包的唯一点。
  • @Cyber​​,呃不完全。凸包将是跨越两个最远点的线段。
  • 嗯...是的。照我的意思做,不要照我说的做:)
  • 好的伙计们..thanx 快速响应
  • @SchighSchagh 但如果我要列出船体中的所有点我应该怎么做,只有两个端点或全部

标签: c++ algorithm convex-hull


【解决方案1】:

传统上,一组点的凸包被计算并输出为顶点的凸包(因为这与原始点集的凸包相同,但它是一个更小且非冗余的描述)。所以,传统上计算凸包,你计算凸包的顶点,然后说你完成了。如果您的所有点都在一条线上,那么只有两个顶点:沿线的两个极端端点。因此,传统上你会通过说它是这两个极值点(两个顶点)的凸包来表示凸包,它是根据凸包的定义连接两个顶点的线段。

【讨论】:

    【解决方案2】:

    来自wikipedia,凸包是“包含 X 的最小凸集”。如果那个凸集是一个多边形,它可以由它的顶点中的点来表示。但不是重点

    所以,你应该输出什么取决于问题要求你如何表示凸包。通常你只需要输出最远的两个点,但有些问题可能会在答案中接受共线点。

    作为练习,认为凸包可能不是多边形:

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 2015-08-09
      • 1970-01-01
      • 2011-01-08
      • 2018-11-26
      • 2013-07-17
      • 2020-06-20
      • 2020-04-27
      • 2017-03-28
      相关资源
      最近更新 更多