gpt4 book ai didi

algorithm - 有没有办法计算一组接触多边形之间的空白区域?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:41 31 4
gpt4 key购买 nike

给定一堆像房屋桁架一样布置的凸多边形,有没有办法计算空白区域,或者为多边形之间的每个“孔”获取多边形?

enter image description here

我尝试从任何给定的多边形开始,然后找到多边形的某些线之间的交点,但不知何故,我被困在如何正确选择用于交点的线上。

然后我尝试验证该区域的顺时针检测,但似乎我用于确定两条线的 CW/CCW 的算法不起作用,因为我认为,它的行为就好像这些线具有相同的原点而不是彼此“按顺序”。

最佳答案

根据评论,解决方案非常简单

1.准备数据

  • 将您的网格表示为点表并删除冗余点(point = x,y,z... + int cnt=0;)
  • 和线表(线 = 2 * 点表中点的索引 + bool deleted=false)
  • 在为每个使用的点创建线表时增加其 cnt 计数器

2.去掉多余的线(粗线之间加入边框)

  • 找到所有重叠且位于同一行上的行
  • 方向相同或相反
  • 删除较短的一个并剖析较大的一个并相应地更新所有表(也指向 cnt !!!)
  • 在此之后找到点之间的所有线路使用 booth 超过两次
  • 删除它们...

enter image description here

3.找到所有闭环

  • 像这样:

    1.创建多边形列表

    • 多边形是点索引的列表

    2.取任何未删除的行

    • 如果找到,将新的多边形添加到列表中
    • 将其点复制到多边形
    • 将行标记为已删除
    • 如果没有找到停止

    3.找到点与最后一个多边形点匹配的线

    • 将另一个点添加到多边形
    • 将行标记为已删除
    • 重复第 2 步,直到找不到这样的行

    4.转到1

4.现在找到边界框最大的多边形

  • 这个多边形是外周
  • 所以删除它
  • 你也可以用不同的颜色绘制它以用于调试目的

5.现在总结剩下的

  • 剩下的所有多边形都是洞
  • 对它们进行三角测量
  • 并通过基本数学公式对所有三角形面积求和...
  • 你也可以用其他不同的颜色绘制它们以进行调试

关于algorithm - 有没有办法计算一组接触多边形之间的空白区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391630/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com