请问已知一个多边行各顶点坐标(这些坐标已排好序),如何判断这个多边形是顺时针还是逆时针?谢谢

ybz870120 2011-08-26 11:30:18
如题!
...全文
378 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnull 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cmarquis 的回复:]

引用 3 楼 nnull 的回复:
如果左下角坐标为0,0

定点y坐标最高的序号A, A前一个定点B, 后一个顶点C

如果B.x > C.x ,则逆时针,
如果B.x < C.x ,则顺时针,
如果B.x = C.x , B.y < C.y 顺时针,否则逆时针

这个应该只在等边多边形时才成立。
[/Quote]

不等边的也一样。思路是把多边形简化为三角形处理。
ColdKevin 2011-08-26
  • 打赏
  • 举报
回复
取所有顶点的平均值,得到多边形的重心,然后按顺序求每个点与重心连线的斜率,逆时针是正数由大变小,负数由小变大,中间会有突变,如果多边形顶点较少,还可以取两点之间连线中的任意点。
CJacky++ 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nnull 的回复:]
如果左下角坐标为0,0

定点y坐标最高的序号A, A前一个定点B, 后一个顶点C

如果B.x > C.x ,则逆时针,
如果B.x < C.x ,则顺时针,
如果B.x = C.x , B.y < C.y 顺时针,否则逆时针
[/Quote]
这个应该只在等边多边形时才成立。
东鹏001 2011-08-26
  • 打赏
  • 举报
回复
不好意思上面回复错了,其实这个问题可以看文档解决
nnull 2011-08-26
  • 打赏
  • 举报
回复
如果左下角坐标为0,0

定点y坐标最高的序号A, A前一个定点B, 后一个顶点C

如果B.x > C.x ,则逆时针,
如果B.x < C.x ,则顺时针,
如果B.x = C.x , B.y < C.y 顺时针,否则逆时针
sc_gw 2011-08-26
  • 打赏
  • 举报
回复
求法线的方向应该可判定
luciferisnotsatan 2011-08-26
  • 打赏
  • 举报
回复
坐标已排好序指什么?
赵4老师 2011-08-26
  • 打赏
  • 举报
回复
ybz870120 2011-08-26
  • 打赏
  • 举报
回复
谢谢各位,问题解决,我用的方法是找到多边形上的一个凸点,然后计算该矢量积,若值大于0,则为顺时针,
小于0则逆!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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