<基础数学> 三个点生成一个圆

三个点生成一个圆

如果给定三个点的坐标,我们可以通过这三个点来确定一个圆。以下是一种求解方法:

假设给定的三个点分别为 A ( x 1 , y 1 ) 、 B ( x 2 , y 2 ) 、 C ( x 3 , y 3 ) A(x_1, y_1)、B(x_2, y_2)、C(x_3, y_3) A(x1,y1)B(x2,y2)C(x3,y3)

1、计算AB与AC的中垂线的斜率,中垂线与AB的垂直斜率的负倒数相等。设AB中点为M,中垂线的斜率为 k 1 k_1 k1,计算方法: k 1 = − 1 / ( ( y 2 − y 1 ) / ( x 2 − x 1 ) ) k_1 = -1 / ((y_2-y_1)/(x_2-x_1)) k1=1/((y2y1)/(x2x1))

2、计算AC的中垂线与BC的中垂线的交点,即圆心。
设AC中点为N,BC中点为O,圆心坐标为 H ( x h , y h ) H(x_h, y_h) H(xh,yh)

  • 求解BC中垂线的斜率 k 2 k_2 k2 k 2 = − 1 / ( ( y 3 − y 2 ) / ( x 3 − x 2 ) ) k_2 = -1 / ((y_3-y_2)/(x_3-x_2)) k2=1/((y3y2)/(x3x2))
  • 求解BC中点O的坐标: o x = ( x 2 + x 3 ) / 2 , o y = ( y 2 + y 3 ) / 2 o_x = (x_2 + x_3) / 2,o_y = (y_2 + y_3)/2 ox=(x2+x3)/2oy=(y2+y3)/2
  • 代入直线的一般式方程: y = k 2 ∗ ( x − o x ) + o y y = k_2 * (x - o_x) + o_y y=k2(xox)+oy,与中垂线的方程联立,求解得到交点 ( x h , y h ) (x_h, y_h) (xh,yh)
    k 1 ∗ ( x h − ( x 1 + x 2 ) / 2 ) + ( y 1 + y 2 ) / 2 = k 2 ∗ ( x h − ( x 2 + x 3 ) / 2 ) + ( y 2 + y 3 ) / 2 k_1 * (x_h - (x_1 + x_2) / 2) + (y_1 + y_2) / 2 = k_2 * (x_h - (x_2 + x_3) / 2) + (y_2 + y_3) / 2 k1(xh(x1+x2)/2)+(y1+y2)/2=k2(xh(x2+x3)/2)+(y2+y3)/2
    化简后求解 x h x_h xh,带入方程求解 y h y_h yh,即得到圆心坐标。

3、最后,计算圆的半径r。将圆心和任意一个点的距离作为半径即可。

  • 圆心坐标为 H ( x h , y h ) H(x_h, y_h) H(xh,yh),任意点为 A ( x 1 , y 1 ) A(x_1, y_1) A(x1,y1)
  • 计算距离的平方: r 2 = ( x 1 − x h ) 2 + ( y 1 − y h ) 2 r^2 = (x_1-x_h)^2 + (y_1-y_h)^2 r2=(x1xh)2+(y1yh)2
  • 取平方根即得半径: r = s q r t ( r 2 ) r = sqrt(r^2) r=sqrt(r2)

这样,我们就通过给定的三个点求解出了一个圆的圆心坐标和半径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP网络编程的接受与发送信息

/发送端B>可以接受数据 public class UDPSenderB {public static void main(String[] args) throws IOException {//创建一个DatagramSocket 对象,准备发送和接受数据DatagramSocket socket new DatagramSocket(9998);//将需要发送的数据,封装到Data…

空号检测API如何助力于提高客户关系管理

引言 在现代商业世界中,客户关系管理已经成为企业成功的关键要素之一。CRM不仅涉及到如何吸引新客户,还包括如何维护并与现有客户建立持久而有益的关系。在这个过程中,通信是至关重要的。为了确保您的客户数据库保持最新和准确,空…

navicat15 恢复试用方法

1.运行,输入regedit,打开注册表 2.注册表中搜索 HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium,删除下面的Registration15XCS文件夹 3.注册表中再搜索 HKEY_CURRENT_USER\Software\Classes\CLSID 然后拉到文件夹目录的最后&#x…

「永不失联」产品创新与升级系列发布,预约直播“即将发车”

数字化浪潮下,北斗时空智能正成为我国重要的新型基础设施。 通过将卫星定位精度提升至厘米级乃至毫米级,时空智能满足了数字化时代智能驾驶、共享出行、智慧城市等多种智能终端对时空信息的爆发式增长需求,同步印证着测绘地理信息领域的技术应…

k8s 集群的组成和原理

集群 集群是一组节点,这些节点可以是物理服务器也可以是虚拟机,在它们中安装了k8s的环境。 集群的组成 k8s 集群由 worker 节点和 node 节点组成,其中worker节点由Controller Manager(控制管理器)、etcd(键值数据库)、scheduler(调度器)、…

ConcurrentHashMap vs Hashtable

1.ConcurrentHashMap 1.7 ReentrantLock Segment HashEntry。 1.8 CAS synchronized HashEntry 红黑树。 public V put(K key, V value) {return putVal(key, value, false);}final V putVal(K key, V value, boolean onlyIfAbsent) {if (key null || value null) th…

什么是Vue.js中的指令(directive)?举例说明一些常见的指令。

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Azure机器学习 - 使用与Azure集成的Visual Studio Code实战教程

本文介绍如何启动远程连接到 Azure 机器学习计算实例的 Visual Studio Code。 借助 Azure 机器学习资源的强大功能,使用 VS Code 作为集成开发环境 (IDE)。 在VS Code中将计算实例设置为远程 Jupyter Notebook 服务器。 关注TechLead,分享AI全维度知识。…

Spring本地jar包依赖项目改为maven依赖

1.简介 我们在做项目的时候,可能会偶尔接手较为古老的项目,这些项目使用了较为老旧的版本管理或依赖管理方法,对于新开发项目来说,这些老旧的依赖管理方式会影响开发效率,所以,一般我们会选择将老项目的依…

JavaEE入门介绍,HTTP协议介绍,常用状态码及含义,服务器介绍(软件服务器、云服务器)

一、JavaEE入门 JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。最早由Sun公司定制并发布,后由Oracle负责维护。 JavaEE平台规范了在开发企业级w…

NB-IOT的粮库挡粮门异动监测装置

一种基于NBIOT的粮库挡粮门异动监测装置,包括若干个NBIOT开门监测装置,物联网后台管理系统,NBIOT低功耗广域网络和用户访问终端;各个NBIOT开门监测装置通过NBIOT低功耗广域网络与物联网后台管理系统连接,物联网后台管理系统与用户访问终端连接.NBIOT开门监测装置能够对粮库挡粮…

LeetCode:274. H 指数、275. H 指数 II(C++)

目录 274. H 指数 题目描述: 实现代码与解析: 排序暴力 275. H 指数 II 题目描述: 实现代码与解析: 二分 比较简单,不再写解析,注意二分的时候,r指针为n,含义为个数&#xf…

HarmonyOS开发:基于http开源一个网络请求库

前言 网络封装的目的,在于简洁,使用起来更加的方便,也易于我们进行相关动作的设置,如果,我们不封装,那么每次请求,就会重复大量的代码逻辑,如下代码,是官方给出的案例&am…

Ubuntu安装ddns-go使用阿里ddns解析ipv6

Ubuntu安装ddns-go 1.何为ddns-go2.安装环境3.获取ddns-go安装包4.解压ddns-go5.安装ddns-go6.配置ddns-go 1.何为ddns-go DDNS-GO是简单好用的DDNS,它可以帮助你自动更新域名解析到公网IP。比如你希望在本地部署网站,但是因为公网IP是动态的&#xff0…

CrackRTF

加密。 解密 import hashlib# 选择哈希算法(例如SHA-256) hash_algorithm hashlib.sha1()flag2"DBApp"for i in range(100000,999999):datastr(i)flag2hash_valuehashlib.sha1(data.encode())hex_value hash_value.hexdigest()if "6E…

【Linux】虚拟机项目部署与发布

目录 一、Linux部署单机项目 1.1 优缺点 1.2 将项目共享到虚拟机 1.3 解压后将war包放入tomcat 1.4 数据库导入脚本 1.5 Tomcat启动项目 二、部署前后端分离项目 2.1 准备工作 2.2 部署SPA项目 2.2.1 nginx反向代理 2.2.2 SPA项目宿主机访问 一、Linux部署单机项目…

854数据结构简答题---图

1.(2015期末)已知无环路有向图如图3.1,请在表2、表3中填写出各事件的最早发生时间、最迟发生时间、活动的最早、最迟开始时间,给出关键活动及关键路径。 从源点到汇点的有向路径可能有多条,所有路径中,具有最大路径长…

CodeWhisperer 初体验

文章作者:1颗 orange 最近用了一个叫 CodeWhisperer 的插件,这个软件对于来说开发人员,插件有好多实用的功能,编码更高效,代码质量也提升了很多。 CodeWhisperer 简介 CodeWhisperer 是亚⻢逊出品的一款基于机器学习…

SRA ToolKit (sra-tools) 的安装和使用

文章目录 前言从哪里下载 SRA ToolKit如何安装怎么用 前言 事情的起因是从NCBI SRA Database下载数据时的一个报错:   path not found while resolving tree within virtual file system module - SRR17****** cannot be found 上次下载数据的时候还是上次&…

Kafka设计原理详解

Kafka核心总控制器Controller 在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。 当某个分区的leader副本出现故障时,由控制器…