基本思路,两点连线,两个线段中垂线交点就是圆心,圆心到任一点距离为半径,做圆。

代码如下:

Function BisectorPLine(Point1 As Variant, point2 As Variant) As AcadPolyline
Dim Dist As Double
Dim Circle1 As AcadCircle
Dim Circle2 As AcadCircle
Dim Pnts As Variant
Dist = Distance(Point1, point2)
Set Circle1 = ThisDrawing.ModelSpace.AddCircle(Point1, Dist)
Set Circle2 = ThisDrawing.ModelSpace.AddCircle(point2, Dist)
Pnts = Circle1.IntersectWith(Circle2, acExtendNone)
Set BisectorPLine = ThisDrawing.ModelSpace.AddPolyline(Pnts)
End Function

Function Distance(Points1 As Variant, point2 As Variant) As Double
Dim Line As AcadLine
Set Line = ThisDrawing.ModelSpace.AddLine(Point1, point2)
Distance = Line.Length
Line.Delete
End Function

Function ThreePointCircle(pnt1 As Variant, pnt2 As Variant, pnt3 As Variant) As AcadCircle
Dim Dist As Double
Dim Pnts As Variant
Dim Line1 As AcadPolyline
Dim Line2 As AcadPolyline
Set Line1 = BisectorPLine(pnt1, pnt2)
Set Line2 = BisectorPLine(pnt1, pnt3)
Pnts = Line1.lntersectwith(Line2, acExtendBoth)
Line1.Delete
Line2.Delete
Dist = Distance(Pnts, pnt1)
Set ThreePointCircle = ThisDrawing.ModelSpace.AddCircle(Pnts, Dist)
End Function

Public Sub DrawCircle()
Dim P1 As Variant
Dim P2 As Variant
Dim P3 As Variant
P1 = ThisDrawing.Utility.GetPoint(, vbCr & "第一点:")
P2 = ThisDrawing.Utility.GetPoint(, vbCr & "第二点:")
P3 = ThisDrawing.Utility.GetPoint(, vbCr & "第三点:")
Dim C As AcadCircle
Set C = ThreePointCricle(P1, P2, P3)
End Sub

不知道这些代码放在哪,悲剧。

AutoCAD VBA:过三点创建一个圆相关推荐

  1. JAVA 计算圆的面积和周长: 创建一个圆Circle类。为该类提供一个变量r表示半径,一个常量PI表示圆周率; * 同时为该类提供两个方法:方法一用于求圆的面积,方法二用于求圆的周长;

      插一句嘴,现在扎扎实实地把这些基础地敲一遍,理解了,可能还是会忘记.但是你最后学习的是做题的思路,而不是单纯的记代码.代码忘了再回过头来看一遍就好了,思路是别人偷不走的.[2022-9] * 思路 ...

  2. 三点确定一个圆(输出圆心、弧长、圆心角、方向)

    三点确定一个圆(输出圆心.弧长.圆心角.方向) 已知圆弧上的三个点,求解该圆的描述信息 /*** @brief The PointF class 基础点结构定义浮点型*/ class PointF { ...

  3. matlab中三点定圆,MATLAB三点确定一个圆

    1 给定三个不在同一直线上的三个点的坐标,确定圆的轨迹方程 2 3 4 下面是MATLAB中的函数文件 5 function[a,b,c]=ThreePointFitCircle(x,y,flag) ...

  4. 创建一个圆类Circle的对象,分别设置圆的半径计算并分别显示圆半径、圆面积、圆周长。...

    编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型): // 存放圆的半径: ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) ...

  5. 控制AutoCAD环境(三) 创建、打开、保存和关闭图形

    Create, Open, Save, and Close Drawings 新建.打开.保存和关闭图形 The DocumentCollection, Document, and Database ...

  6. Git 历险记(三)——创建一个自己的本地仓库

    2019独角兽企业重金招聘Python工程师标准>>> 如果我们要把一个项目加入到Git的版本管理中,可以在项目所在的目录用git init命令建立一个空的本地仓库,然后再用git ...

  7. 【超直白】三分钟创建一个小程序

    让我们花三分钟创建一个小程序! 注册账号 访问微信公众平台网站:https://mp.weixin.qq.com 鼠标放到小程序上 发现图案变成了,下面这样,点击[查看详情],进入小程序注册页面. 拉 ...

  8. maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程

    前面maven 学习笔记(二)已经说过了怎样通过插件创建一个简单的工程,有了前面的基础,创建一个较复杂的工程就容易了很多.同样是通过已经有了插件,同样如果插件系统中并未存在,还是需要通过Add Arc ...

  9. 小灰灰的APP学习之路(三)--创建一个简单的问答选择项目

    创建一个简单的问答选择项目 简介 这是一个简单的问答选择项目,界面上显示问题,然后点击"正确"或"错误"按钮,系统给出是否回答正确的提示. 例如: 问题:1+1 ...

最新文章

  1. 从头开始学习深度学习之卷积
  2. 问题 B: 分组统计
  3. malloc和free实现的原理
  4. 【转载】用JS控制输入内容
  5. EF获取多个数据集以及MySQL分页数据查询优化
  6. Java EE 6 Web配置文件。 在云上。 简单。
  7. kk6.0 服务器信息 端口,KK的服务器改了端口以后 为什么我进不去
  8. 2019年前端开发10大战略性技术蓝图
  9. Bailian2854 点和正方形的关系【水题】
  10. java完整JDBC操作数据库
  11. Fisher-Yates 乱序算法
  12. php 高并发解决方案(用于抢购)
  13. word排版一般步骤
  14. 刷机精灵官网版 v2.1.2 免费版
  15. 【人事】性格内向的人面试注意事项
  16. Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用
  17. java socket send_Socket send函数和recv函数详解
  18. centos yum 本地源配置
  19. 为什么我的CNN石乐志?我只是平移了一下图像而已
  20. 如何解决QQ在线客服未启用问题

热门文章

  1. Centos6 破解系统密码
  2. 根据windows域名找ip
  3. 产品运营 | 如何通过数据评判你的 App 表现?
  4. android binder 实例
  5. Apache Solr schema.xml及solrconfig.xml文件中文注解
  6. .NETCore 下支持分表分库、读写分离的通用 Repository
  7. Toby Walsh教授:四个指数趋势解释人工智能威胁论!
  8. 《51单片机应用开发从入门到精通》——2.2 跑马灯实例
  9. ARM架構的Linux內核的空間佈局
  10. HashMap原理和使用