【发布时间】:2018-12-29 21:01:53
【问题描述】:
我有一个顶点为 P1、P2、P3、.....P11 的多边形。我的顶点坐标数据类型是双精度的。
我在 P1、P7 之间也有一条线。
我想在 P1 和 P7 之间创建一个部分凸包,并在 P7 之后保留我原来的多边形顶点。
所以最终的多边形如下;
到目前为止,我将整个多边形转换为凸包,删除凸包中的顶点并添加包顶点。它适用于小多边形,但当顶点数增加时,这种方式管理起来并不容易。
我试图寻找可用于部分凸包的 c# 算法,但除了一些研究之外我找不到任何东西。
有什么想法吗?
【问题讨论】:
-
经过中间的那条线到底与问题有什么关系?
-
只是随机的,不在中间。这就是为什么安德鲁的单调链凸包算法也不适合:(
-
但是它是从哪里来的,它与问题有什么关系呢?
-
多边形代表障碍物,线是起点和终点之间的直线延伸,穿过障碍物。
-
您是否在做部分凸包以确保这些点之间没有障碍物?因为那并不总是有效。另一方面,也有很多情况下,由这两个点之间的顶点定义的部分凸包远远超过了移除障碍物所需的量。也许有关您的最终目标的更多详细信息将有助于我们为您提供更多帮助。
标签: c# convex-hull