求平面N点最大范围点连线成多边形算法

JTHWAMAN 2007-09-18 03:40:06
请教各位怎样才能做到将
平面N点最大范围点连线成多边形

N点位置均不是在同一线上而是任意排列
烦请各位提供一下程序算法
谢谢
...全文
204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
JTHWAMAN 2007-09-22
  • 打赏
  • 举报
回复
请问 "Tiger_Zhao"
您说的方法中有几点不明白,可以解释一下吗?
01.斜率 (x2-x1)/(y2-y1) 若求解时出现 "除以零" 该怎样处里呢?
02.顺逆方向是由上面斜率值判断吗?
是否为: 负值为逆 正值为顺 ?
正值越小,离P1点越近 ???
03.怎样回到点 p1 ?
若是判断全部的点,也会判断到凸包内部的点阿
那在资料中不就会一直判断,没办法找出真正的外围点?

不知道上面的说法对不对
由于没看过别人写的完整凸包程序,因此会有些疑惑
或许由程式讲解会更好些...


Tiger_Zhao 2007-09-21
  • 打赏
  • 举报
回复
没错,不过你的紧绷法用算法描述能否比罗列所有的可能路径求最小要优?
Zricepig 2007-09-21
  • 打赏
  • 举报
回复
ls的,你这么说,最短路径还可以看成是一个鱼网上两个点,用手一扯,最紧绷的那根就是最短路经~~~
Tiger_Zhao 2007-09-20
  • 打赏
  • 举报
回复
我没学过什么算法,所以不知道归为哪类。
思路来源:将点看作插在地上的筷子,拿根线在外围绕一圈,就是凸包。
JTHWAMAN 2007-09-20
  • 打赏
  • 举报
回复
谢谢 "Tiger_Zhao" 的回覆
不知道您的方法算是哪类:
另外对于 凸包的求法种类查找了一下有
"Krikpatrick剪枝搜索算法" "Seidel剪枝搜索算法" "Graham扫瞄法" "Jarvis步进法"
这四种 不知道是不是还有其他,
但对于有介绍使用程序的好像只有"Graham扫瞄法".

是否因为使用其他方法的效果不如 "Graham扫瞄法" 呢 ???

Tiger_Zhao 2007-09-19
  • 打赏
  • 举报
回复
找出一个 x 最小的点 p1(x1,y1),该点必定是凸包的顶点;
找出一个 p2(x2,y2),使将直线 x=x1 顺时针旋转成为经过p1、p2的直线的角度最小,可以通过斜率 (x2-x1)/(y2-y1) 进行判断;
同理查找 p3 使得顺时针旋转角度最小,一直回到点 p1。

只要注意直接旋转经过象限边界时的斜率变化就可以了。
JTHWAMAN 2007-09-18
  • 打赏
  • 举报
回复
那凸包该用哪种算法求会比较方便及快速呢?
zgg___ 2007-09-18
  • 打赏
  • 举报
回复
是呀,再远的地方就没有点支着了。
tailzhou 2007-09-18
  • 打赏
  • 举报
回复
就是求凸包吧?
google!
的基本运算 1. 平面上两之间距离 1 2. 判断两是否重合 1 3. 矢量叉乘 1 4. 矢量乘 2 5. 判断是否在线段上 2 6. 饶某旋转后的坐标 2 7. 矢量夹角 2 ㈡ 线段及直线的基本运算 1. 与线段的关系 3 2. 到线段所在直线垂线的垂足 4 3. 到线段的最近 4 4. 到线段所在直线的距离 4 5. 到折线集的最近距离 4 6. 判断圆是否在多边形内 5 7. 矢量夹角余弦 5 8. 线段之间的夹角 5 9. 判断线段是否相交 6 10.判断线段是否相交但不交在端处 6 11.线段所在直线的方程 6 12.直线的斜率 7 13.直线的倾斜角 7 14.关于某直线的对称 7 15.判断两条直线是否相交及直线交 7 16.判断线段是否相交,如果相交返回交 7 ㈢ 多边形常用算法模块 1. 判断多边形是否简单多边形 8 2. 检查多边形的凸凹性 9 3. 判断多边形是否凸多边形 9 4. 多边形面积 9 5. 判断多边形的排列方向,方法一 10 6. 判断多边形的排列方向,方法二 10 7. 射线法判断是否在多边形内 10 8. 判断是否在凸多边形内 11 9. 寻找集的graham算法 12 10.寻找集凸包的卷包裹法 13 11.判断线段是否在多边形内 14 12.简单多边形的重心 15 13.多边形的重心 17 14.肯定在给定多边形内的一个 17 15.多边形外一出发到该多边形的切线 18 16.判断多边形的核是否存在 19 ㈣ 圆的基本运算 1 .是否在圆内 20 2 .不共线的三所确定的圆 21 ㈤ 矩形的基本运算 1.已知矩形三坐标,第4坐标 22 ㈥ 常用算法的描述 22 ㈦ 补充 1.两圆关系: 24 2.判断圆是否在矩形内: 24 3.平面的距离: 25 4.是否在直线同侧: 25 5.镜面反射线: 25 6.矩形包含: 26 7.两圆交: 27 8.两圆公共面积: 28 9. 圆和直线关系: 29 10. 内切圆: 30 11. : 31 12. 线段的左右旋: 31
ACM 很全的计算几何模板 基础部分 1.几何公式 5 1.1三角形 5 1.2四边形 5 1.3正n边形 5 1.4圆 5 1.5棱柱 6 1.6棱锥 6 1.7棱台 6 1.8圆柱 6 1.9圆锥 6 1.10圆台 7 1.11球 7 1.12球台 7 1.13球扇形 7 2.直线与线段 7 2.0预备函数 7 2.1判三是否共线 8 2.2判是否在线段上 9 2.3判断两在线段的同一侧 9 2.4判断两是否在线段的异侧 9 2.5关于直线的对称 10 2.7判断两线段是否相交 10 2.7.1常用版 10 2.7.2不常用版 11 2.8 两条直线的交 11 2.9到直线的最近距离 12 2.10到线段的最近距离 12 3.多边形 12 3.0 预备浮函数 12 3.1判定是否是凸多边形 13 3.2判定是否在多边形内 14 3.3 判定一条线段是否在一个任意多边形内 15 4. 三角形 16 4.0预备函数 16 4.1三角形的外心 17 4.2三角形内心 17 4.3三角形垂心 17 5. 圆 18 5.0预备函数 18 5.1判定直线是否与圆相交 19 5.2判定线段与圆相交 19 5.3判圆和圆相交 19 5.4计算圆上到p最近 19 5.5计算直线与圆的交 20 5.6计算两个圆的交 20 6. 球面 21 6.0给出地球经度纬度,计算圆心角 21 6.1已知经纬度,计算地球上两直线距离 21 6.2已知经纬度,计算地球上两球面距离 21 7. 三维几何的若干模板 22 7.0预备函数 22 7.1判定三是否共线 23 7.2判定四是否共面 23 7.1判定是否在线段上 23 7.2判断是否在空间三角形上 24 7.3判断两是否在线段同侧 24 7.4判断两是否在线段异侧 25 7.5判断两是否在平面同侧 25 7.6判断两是否在平面异侧 25 7.7判断两空间直线是否平行 25 7.8判断两平面是否平行 26 7.9判断直线是否与平面平行 26 7.10判断两直线是否垂直 26 7.11判断两平面是否垂直 26 7.12判断两条空间线段是否相交 27 7.13判断线段是否与空间三角形相交 27 7.14计算两条直线的交 28 7.15计算直线与平面的交 28 7.16计算两平面的交线 29 7.17到直线的距离 29 7.18 计算平面的距离 29 7.19计算直线到直线的距离 30 7.20空间两直线夹角的cos值 30 7.21两平面夹角的cos值 30 7.22直线与平面夹角sin值 31 1.最远曼哈顿距离 31 2. 最近对 32 3. 最近对 34 4. 最小包围圆 36 5. 两个圆的交 39 6. 三角形外接圆圆心 40 7. 凸包 42 8.凸包卡壳旋转出所有对踵、最远对 44 9. 凸包+旋转卡壳平面面积最大三角 47 10. Pick定理 50 11. 多边形面积和重心 51 12. 判断一个简单多边形是否有核 52 13. 模拟退火 54 14. 六边形坐标系 56 15. 用一个给定半径的圆覆盖最多的 60 16. 不等大的圆的圆弧表示 62 17. 矩形面积并 62 18. 矩形的周长并 66 19. 最近圆对 70 20. 两个圆的面积交 74

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧