乐筑天下

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

如何找出图中所有交点?

[复制链接]

15

主题

52

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2004-1-10 18:31:00 | 显示全部楼层 |阅读模式
如何找出一张图中所有的交点,及其对应的线?
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2004-1-10 21:07:00 | 显示全部楼层
只能通过一条线,查找在它某一范围之内的其它线,判断它们之间有没有交点。
  1. Sub test()
  2.    
  3.     ' 判断图纸中的实体数目,不存在时中断
  4.     If ThisDrawing.ModelSpace.Count = 0 Then Exit Sub
  5.     Dim EntObj1 As AcadEntity
  6.     Dim EntObj2 As AcadEntity
  7.     Dim v As Variant
  8.     ' 遍历模型空间
  9.     For Each EntObj1 In ThisDrawing.ModelSpace
  10.         ' 判断实体的类型,线应该包含直线、圆弧、圆、多段线等等,要一一判断
  11.         If TypeOf EntObj1 Is AcadLine Or TypeOf EntObj1 Is AcadLWPolyline Then
  12.             For Each EntObj2 In ThisDrawing.ModelSpace
  13.                 If TypeOf EntObj1 Is AcadLine Or TypeOf EntObj1 Is AcadLWPolyline Then
  14.                     ' 判断相交情况
  15.                     v = EntObj1.IntersectWith(EntObj2, acExtendNone)
  16.                     If Not IsEmpty(v) Then
  17.                         ' 一个交点
  18.                         If UBound(v) = 3 Then
  19.                         ' 两个交点
  20.                         ElseIf UBound(v) = 6 Then
  21.                         ' 其它情况
  22.                         Else
  23.                         End If
  24.                     End If
  25.                 End If
  26.             Next
  27.         End If
  28.     Next
  29. End Sub

这仅是一个示例,具体的要根据自己的情况来处理。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 10:35 , Processed in 1.988815 second(s), 56 queries .

© 2020-2025 乐筑天下

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