明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2723|回复: 3

求两条直线的交点

[复制链接]
发表于 2009-9-11 12:05:00 | 显示全部楼层 |阅读模式
在图上任意做两条相交直线
  1. Sub ll()
  2.   Dim Ent As AcadEntity
  3.   Dim objLine(1) As AcadLine
  4.   Dim Pp, Pp1, Pt1, Pt2
  5.   With ThisDrawing
  6.     ii = 0
  7.     For Each Ent In .ModelSpace
  8.       Set objLine(ii) = Ent
  9.       With objLine(ii)
  10.         For jj = 0 To 2
  11.           Select Case ii
  12.             Case 0
  13.               Pt1 = .StartPoint
  14.               Kk1 = .Delta(1) / .Delta(0)
  15.               .color = 1
  16.               yy = Kk1 * (.EndPoint(0) - .StartPoint(0)) + .StartPoint(1)
  17.               
  18.               'Debug.Print "yy", yy, .EndPoint(1)
  19.             Case 1
  20.               Pt2 = .StartPoint
  21.               Kk2 = .Delta(1) / .Delta(0)
  22.               .color = 2
  23.           End Select
  24.         Next jj
  25.       End With
  26.       ii = ii + 1
  27.     Next Ent
  28.     Pp = objLine(0).IntersectWith(objLine(1), acExtendBoth)
  29.     Debug.Print Pp(0), Pp(1)
  30.     Pp1 = TowLinesIntersect(Pt1, Kk1, Pt2, Kk2)
  31.     Debug.Print Pp1(0), Pp1(1)
  32.   End With
  33. End Sub
  34. Function TowLinesIntersect(Pt1, Kk1, Pt2, Kk2) As Variant
  35.   Dim Pp(2) As Double
  36.   Pp(0) = (Kk1 * Pt1(0) - Pt1(1) - Kk2 * Pt2(0) + Pt2(1)) / (Kk1 - Kk2)
  37.   Pp(1) = (Pp(0) - Pt1(0)) * Kk1 + Pt1(1)
  38.   TowLinesIntersect = Pp
  39. End Function
发表于 2009-9-17 13:56:00 | 显示全部楼层

支持一下呀,学习了

------------------------------------------------------------------

上海上门按摩  上海上门按摩 上海上门按摩 上海上门按摩 上海按摩

发表于 2010-2-8 19:40:00 | 显示全部楼层

怎么回事啊。不能用啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2010-2-23 18:34:00 | 显示全部楼层
不是说了要先画两条直线的嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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