游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6654|回复: 12

新手求教:给定一个多边形的顶点序列,如何判断出其序

[复制链接]

5

主题

19

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2007-1-11 22:53:00 | 显示全部楼层 |阅读模式
已知一个多边形的顶点序列,我写了一个算法将其三角化,但其只能对顺时针的顶点序列能够正常运行,对于逆时针方向的序列就无法正常运行了。如何判断多边形的顶点序列是顺时针的还是逆时针的。
或者有能够忽略顶点方向的三角化方法么?
谢谢!

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-1-12 00:15:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

你的算法是针对凸多边形还是凹多边形?如果是凸,并且给定的顶点序列是连续的,可以通过判断两点之间线段的点积,求出两线段之间的夹角的,大于180顺时针,小于180逆时针。

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2007-1-12 00:15:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

根据外角和的正负判断?

5

主题

19

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2007-1-12 01:42:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

多边形是任意的,即可能是图多边形,也可能是凹多边形。

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2007-1-12 15:58:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

假设给定多边形顶点序列为0,1,....n,找出多边形的最大点,最小点在顶点序列中的索引,假定分别为a,b,以顶点a,(a==0?n-1: a+1),b三点组成三角形,然后再判断。

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2007-1-12 16:01:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

嘿嘿,给定的答案有缺陷,但是思路就是先找出最大点和最小点,再另外找和最大点,或者最小点相邻的点。然后再判断。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-12 16:37:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

同2楼,凸多边形O(1)
凹多边形似乎是O(n)...

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2007-1-13 13:57:00 | 显示全部楼层

Re: Re:新手求教:给定一个多边形的顶点序列,如何判断

hugp1973: Re:新手求教:给定一个多边形的顶点序列,如何判断出其序列是顺时针还是逆时针的

假设给定多边形顶点序列为0,1,....n,找出多边形的最大点,最小点在顶点序列中的索引,假定分别为a,b,以顶点a,(a==0?n-1: a+1),b三点组成三角形,然后再判断。

请教什么是最大点,什么是最小点?谢谢。

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-1-14 01:34:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

我上次也是三角剖分的时候遇到这个问题的。。。呵呵

最简单的就是平均取3点,计算叉乘,再根据符号判断绕向,不过个别凹多边形的会出错。

所以用最大最小点(某一方向的极值,如左上角的点)来取这3点,以保证不会取到凹的顶点。

好像还有一种方法,好像和角度和有关,记不清了。

具体可以去看看 《计算几何》 和 《计算机图形学几何工具算法详解》。

5

主题

19

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2007-1-15 22:33:00 | 显示全部楼层

Re:新手求教:给定一个多边形的顶点序列,如何判断出其

多谢大家,我找了一个算法,就是扇形计算多边形面积的,如果结果为正,则定为正向,如果为负,则定为负向。算法时间复杂度为o(n),不是很理想。
看了大家的回答,感觉去极点的方式应该比较快,去试一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 06:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表