明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1410|回复: 2

根据交点重新绘制图形?

[复制链接]
发表于 2005-4-17 12:59:00 | 显示全部楼层 |阅读模式
程序生成了一个由直线首尾相连的闭合回路,现在我想把这个闭合回路,用多义线重新绘制。我是这么想的,用IntersectWith获得直线相交的交点,然后按点绘制多义线。但是不知,此法可行否?而且绘制多义线的时候,如何让它逐点绘制呢?恳请高手指点迷津,谢过先……
发表于 2005-4-17 20:09:00 | 显示全部楼层
我在VBA中经常碰到类似的问题,我的处理方法如下:


1.首先找到这个闭合回路里面的任意一条直线Line1。其端点为A和B。保存端点A的坐标。


2.对直线的一个端点A进行数学计算延伸其长度得到新的端点A2,从数学上构建一个经过A2和B这两个点的矩形Rect1,可以得到这个矩形的四个顶点E、F、G、H,从而构建一个顶点数组VertexArray。


3.屏幕缩放,确保你说的那个闭合回路被当前视图全部显示出来。然后进行选择,使用SelectByPolygon命令,选择模式为acSelectionSetFence,以VertexArray为选择区域。


4.在得到的选择集中寻找下一条直线。判断条件为两条直线真实相交,且交点即为Line1直线的端点A,这样总是可以找到与直线Line1首尾相交的直线Line2。


5.以直线Line2不与Line1相交的点为A,保存Line2的端点A的坐标。重复以上1~4过程,直到再次找到Line1为止。这样就可以把这个闭合回路中的所有直线照出来。


6.所有保存下来的不同直线端点A的坐标加上起始直线的B端点坐标,就是这个闭合回路的顶点数据。以这些顶点数据,就可以生成多段线了。最后使得多段线的Close为True即可。
 楼主| 发表于 2005-4-18 10:25:00 | 显示全部楼层
谢过这位仁兄!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 17:44 , Processed in 0.181699 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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