|
发表于 2009-6-27 06:40:00
|
显示全部楼层
1、找出左上角:比较多段线上所有点x,y坐标,找出最小x,y,最大x,y,以最小最大xy为作水平方向
上矩形,把多段线包在内部,计算多段线所有点到矩形左上角距离,找出距离最近那个点。这个点就
是作为多段线的左上角(现在假设多段线第3点离矩形左上角最近)
2、把起点移到左上角:多段线上点是以数组方式依次排列的,第0点即起点。把多段线0点移到第1点,
把第1点移到第2点,如些多次移动后产生新的多段线的第0点坐标与原来的第3点(第3点是离矩形左
上角最近的点)重合,新的多段线的第1点坐标与原来的第4点重合,新的多段线的第2点坐标与原来
的第5点重合,如些类推。
3、判断方向:把新生成点在左上角的多段线称之为α。比较多段线上所有点x,y坐标,找出最小x,y,最大
x,y,以最小最大xy为作水平方向上矩形,把α包在内部。以矩形左上角右下角坐标作一条直线,
与α相交,交点为A,B(交点可能为多个)。现在产生新多段线β,β与α是一样的,不同之处β抱含
了点A,B所以β点列表依次可以表标为 第0点 第1点 第2点 第3点 第A点 第5点 第6点 第7点
第B点 第9点 第10点 等等,如果A点到B点之间,第5点 第6点 第7点,大部分点落在直线AB右上
角则判断为顺时针
此判断方向方法不是100%有效,但我判断方向思路是这样的,你可以用类似思路或其它点线作参照
|
|