现在情况是,按最小距离来画,画出来后,会有线交差情况,求一个思路
1 hearfish 2018-09-19 10:32:44 +08:00 via Android 不要求最短路径的话沿着一个方向连起来就行啊 |
![]() | 2 NCry 2018-09-19 10:35:27 +08:00 via iPhone 画圆,这是我的第一反应 |
![]() | 3 Hilong 2018-09-19 10:40:45 +08:00 via Android 贪吃蛇 |
![]() | 4 northernlights 2018-09-19 10:43:08 +08:00 z 形的线,极端的情况就是 N 条平行的线全部覆盖了整个面。 |
5 jieee 2018-09-19 10:48:24 +08:00 有几个最短路径算法,也可以启发式算法搜索路径 |
![]() | 6 coderluan 2018-09-19 11:15:49 +08:00 只是要求不交叉吗?直接按 x 轴顺序连接就完了呗,画完了是个心电图,肯定不交叉。 |
7 zagreb 2018-09-19 11:17:46 +08:00 via iPhone ![]() 旅行商问题。看你描述到下一个最近的点,这是局部优化解。用遗传算法吧,我以前用过,答案是很漂亮的不交叉的圈。当然也可能掉进局部优化的坑里,结果是 8 字形。 |
![]() | 8 iloahz 2018-09-19 11:25:48 +08:00 via Android ![]() |
![]() | 9 Xs0ul 2018-09-19 11:26:04 +08:00 挑个坐标系,按其中一个轴单调增连起来不就行了。前面说的按 x 轴,或者选个中心点极坐标绕圈。 |
13 LuffyGu 2018-09-19 11:57:48 +08:00 找出最左,或最右,或最上,或最下的点。然后向这个点的反方向,把点一个一个的连接起来,一条折线。 |
![]() | 14 SCaffrey 2018-09-19 11:59:24 +08:00 via Android ![]() 极角排序? |
![]() | 15 Yafeng043 2018-09-19 13:02:19 +08:00 via iPhone 以中心点为原点左右划分为竖向两块,分别按照楼上说的心电图的走法即可。应该解决问题了吧 |
16 Yinnfeng 2018-09-19 13:25:24 +08:00 用凸包做?绕圈。 |
![]() | 17 iloahz 2018-09-19 14:08:57 +08:00 via Android 给定起点的话感觉极角排序比较靠谱,只是注意选取起始角度的问题,当所有点在一个半平面内时需要从边上开始 |