乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 49|回复: 2

根据交点重新绘制图形?

[复制链接]

4

主题

14

帖子

1

银币

初来乍到

Rank: 1

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

使用道具 举报

11

主题

51

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 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即可。
回复

使用道具 举报

4

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
30
发表于 2005-4-18 10:25:00 | 显示全部楼层
谢过这位仁兄!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-2 05:26 , Processed in 0.929540 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表