本帖最后由 作者 于 2009-6-27 7:49:11 编辑
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%有效,但我判断方向思路是这样的,你可以用类似思路或其它点线作参照
|