当前位置: 首页 > news >正文

已知两圆的圆心半径,求交点坐标——CAD VBA 解决

如下图,两圆坐标分别为(0,0)半径100,,80,0),半径100,交点坐标如下:

通过vba计算代码如下:

 

Public Function FindCircleIntersections(x1 As Double, y1 As Double, r1 As Double, x2 As Double, y2 As Double, r2 As Double) As VariantDim d As DoubleDim a As Double, h As DoubleDim intersections(1, 1) As Double ' 假设最多有两个交点Dim intersectionCount As IntegerDim discriminant As Double' 计算圆心距d = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)' 检查两圆是否相交或相切If d > Abs(r1 - r2) And d < (r1 + r2) Then' 计算交点a = (r1 ^ 2 - r2 ^ 2 + d ^ 2) / (2 * d)h = Sqr(r1 ^ 2 - a ^ 2)' 第一个交点intersections(0, 0) = x1 + a * (x2 - x1) / dintersections(0, 1) = y1 + Sqr(r1 ^ 2 - (intersections(0, 0) - x1) ^ 2)' 第二个交点intersections(1, 0) = intersections(0, 0) ' x坐标相同intersections(1, 1) = y1 - Sqr(r1 ^ 2 - (intersections(0, 0) - x1) ^ 2)intersectionCount = 2Else' 如果没有交点,返回一个空数组intersectionCount = 0End If' 返回结果If intersectionCount = 0 Then' 如果没有交点,返回空数组FindCircleIntersections = intersectionsElse' 如果有交点,返回包含交点的数组FindCircleIntersections = intersectionsEnd If
End FunctionSub a()
'@yngqq443440204 2024年9月10日18:00:47
Dim b As Variantb = FindCircleIntersections(0, 0, 100, 80, 0, 100)MsgBox "第一个点坐标为:" & b(0, 0) & "  ," & b(0, 1) & "第二个点坐标为:" & b(1, 0) & "  ," & b(1, 1)Stop
End Sub

CAD二次开发、插件、代码代写,详情见下方↓

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1-【JavaWeb】数据库基础
  • 生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute
  • java中redis集群模式和哨兵模式的区别和联系?
  • Java:动态代理
  • CSP-CCF★★★201812-2小明放学★★★
  • Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更】
  • ABAP JSON处理应用
  • CKAD-CronJob
  • 伟易特发布全新一代便携式反无人机装备
  • Vue组件:动态组件、缓存组件、异步组件
  • CentOs7 解决yum更新源报错:[Errno 14] HTTP Error 404 - Not Found 正在尝试其它镜像。
  • 微信小程序登录与获取手机号 (Python)
  • 计算机毕业设计Spark+PyTorch知识图谱中药推荐系统 中药数据分析可视化大屏 中药爬虫 机器学习 中药预测系统 中药情感分析 大数据毕业设计
  • opencv学习:信用卡卡号识别
  • 别总是“系统错误,请稍后重试!”了,解决问题要彻底!
  • hexo+github搭建个人博客
  • [译] 怎样写一个基础的编译器
  • css系列之关于字体的事
  • DOM的那些事
  • Javascript基础之Array数组API
  • JavaScript实现分页效果
  • Laravel 实践之路: 数据库迁移与数据填充
  • npx命令介绍
  • Sass 快速入门教程
  • SQLServer之创建数据库快照
  • 闭包--闭包之tab栏切换(四)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 聊聊sentinel的DegradeSlot
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 码农张的Bug人生 - 见面之礼
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • FaaS 的简单实践
  • Semaphore
  • 阿里云服务器购买完整流程
  • ​ArcGIS Pro 如何批量删除字段
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (a /b)*c的值
  • (pojstep1.1.2)2654(直叙式模拟)
  • (安卓)跳转应用市场APP详情页的方式
  • (补)B+树一些思想
  • (分布式缓存)Redis持久化
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (一) springboot详细介绍
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .NET C# 操作Neo4j图数据库
  • .Net Remoting常用部署结构
  • .Net 访问电子邮箱-LumiSoft.Net,好用