明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2152|回复: 3

如何设置封闭polyline或者LWpolyline的第一个点啊!

[复制链接]
发表于 2009-6-24 13:41:00 | 显示全部楼层 |阅读模式
       我写了一个程序提取一个封闭多段线的坐标!由于我希望左上角为第一个点!然后按顺时针方向赋值,可是有很多封闭多段线都是它的起点可能是任何位置,而且还有可能是逆时针的!因此这样得出的结果不符合要求!如果有圆弧好像更不好解决!我想求各位大虾帮帮忙!在下感恩戴德!永世不忘!谢谢
发表于 2009-6-25 21:01:00 | 显示全部楼层
把点取出来再排序,但怎样去判断哪个应该是第一个点,左上角,如果左上角有许多个点怎么办。
发表于 2009-6-27 06:40:00 | 显示全部楼层
本帖最后由 作者 于 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%有效,但我判断方向思路是这样的,你可以用类似思路或其它点线作参照

 楼主| 发表于 2009-9-9 13:12:00 | 显示全部楼层

thank you

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 00:56 , Processed in 0.141092 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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