Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求非凸多边形的代表平均内点 我试图解决C++中的旅行商问题,但是我必须遍历一组POLGON之间的最短距离而不是一组点。为此,我尝试用一个代表性的“平均”内点来表示每个多边形,这样我就可以对这些平均内点进行TSP_C++_Algorithm_Visual C++_Graphics - Fatal编程技术网

求非凸多边形的代表平均内点 我试图解决C++中的旅行商问题,但是我必须遍历一组POLGON之间的最短距离而不是一组点。为此,我尝试用一个代表性的“平均”内点来表示每个多边形,这样我就可以对这些平均内点进行TSP

求非凸多边形的代表平均内点 我试图解决C++中的旅行商问题,但是我必须遍历一组POLGON之间的最短距离而不是一组点。为此,我尝试用一个代表性的“平均”内点来表示每个多边形,这样我就可以对这些平均内点进行TSP,c++,algorithm,visual-c++,graphics,C++,Algorithm,Visual C++,Graphics,我很容易在凸多边形中找到一个平均内点,因为它只是算术平均点(对于凸多边形,它总是位于内部),但这种方法不适用于凹多边形,因为它不一定是多边形的内部 帮帮忙? 谢谢。:-) 一个想法是构造每个多边形的凸包,然后使用凸包的中心。理解这个想法就像用橡皮筋包裹任何多边形,这会给你一个信封,你可以用它来找到感兴趣的点。我相信你应该能够用计算机来计算。但是如果你对每个多边形都这样做,它就不会超快了。如果构建三角剖分,则作为附加步骤,可以有效地找到原始多边形最接近其凸包中心点的内部点 顺便说一句,我认为找到凸

我很容易在凸多边形中找到一个平均内点,因为它只是算术平均点(对于凸多边形,它总是位于内部),但这种方法不适用于凹多边形,因为它不一定是多边形的内部

帮帮忙?
谢谢。:-)

一个想法是构造每个多边形的凸包,然后使用凸包的中心。理解这个想法就像用橡皮筋包裹任何多边形,这会给你一个信封,你可以用它来找到感兴趣的点。我相信你应该能够用计算机来计算。但是如果你对每个多边形都这样做,它就不会超快了。如果构建三角剖分,则作为附加步骤,可以有效地找到原始多边形最接近其凸包中心点的内部点

顺便说一句,我认为找到凸多边形点中心的正确方法是找到切比雪夫中心,这对应于求解一个线性系统,你也可以使用CGAL。查找凸多边形切比雪夫中心的线性规划问题在中有很好的定义。

如何:

  • 三角多边形(N阶对数(N))
  • 选择面积最大的三角形(例如)(顺序N)
  • 在三角形的重心处选择你的点。(常数)

  • 由于整个非凸多边形的真正重心(可能)在多边形之外,我认为“代表性”点的另一个定义对我来说没有比这更合理的了。

    如何表示多边形?我添加了标签
    算法
    ,因为这基本上是算法问题。你能承受什么样的复杂性?你对
    内部点的定义是什么?为什么它必须是内部点?我想你们要么想找到一个近似值,在这种情况下,我不明白为什么内部是必要的。或者通常是最短路径,在这种情况下,我不会使用平均代表,而是将多边形全部去掉,并将问题直接转化为TSP。您可能会感兴趣。@Boris现在我正在寻找一个好的解决方案,最多可以负担N^3。