明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1185|回复: 2

C点作线段AB垂线,且交于B点的解法。

[复制链接]
发表于 2008-9-17 22:08:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-9-17 22:09:27 编辑

图示,求C点到AB线段的垂线,且交点于B点.

程序解决如下

Sub LS()
Sub LS()
  Dim Aa(2) As Variant
  Aa(0) = Array(10, 33)
  Aa(1) = Array(20, 50)
  Aa(2) = Array(25, 50)
  Dim pp(0 To 2) As Double, ppp(0 To 2) As Double
  Dim Alfa(1) As Double, ll As AcadLine
  For ii = 0 To 1
    For jj = 0 To 1
      pp(jj) = Aa(ii)(jj)
      ppp(jj) = Aa(ii + 1)(jj)
    Next jj
    Set ll = ThisDrawing.ModelSpace.AddLine(pp, ppp)
    Alfa(ii) = ll.Angle
   
  Next ii
  Debug.Print Alfa(1), Alfa(0) * 180 / 3.1415926, Alfa(1) - Alfa(0)
  Debug.Print Alfa(0) - Pi / 2, (Alfa(0) - Pi / 2) * 180 / Pi
  ll.Rotate ll.StartPoint, Alfa(0) - Pi / 2
End Sub
Function Pi() As Double
  Pi = 4 * Atn(1)
End Function

发表于 2008-9-18 01:15:00 | 显示全部楼层

总觉得VBA里面几何分析很重要,这个功能在lisp里面太容易了

 楼主| 发表于 2008-9-18 08:33:00 | 显示全部楼层
sailorcwx发表于2008-9-18 1:15:00总觉得VBA里面几何分析很重要,这个功能在lisp里面太容易了

要运行LISP在命令行会滚动一大堆内容,速度不如VBA快。要想提高程序运行速度,VBA效果比LISP好。

用几何算法,就是要提高速度。在VBA中也可以运行LISP语句。

ll.Rotate ll.StartPoint, Alfa(0) - Pi / 2与LISP的(command "Rotate" pp,"")是等价的。

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

本版积分规则

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

GMT+8, 2024-11-26 07:33 , Processed in 0.178330 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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