三点定圆推导公式

article/2025/11/6 20:11:25

不共线的三个点可以确定一个圆。

下图是用Graph画的一个很粗糙的图片用于方便理解。
紫色的线分别为AB的中垂线和AC的中垂线。
两个中垂线的交点就是圆心。
圆心到三个点的距离都相等。
三点定圆

推导公式

参考博客:三点确定一个圆的计算方法

设圆心坐标O ( x 0 , y 0 ) (x_0, y_0) (x0,y0),半径为r
三个点的坐标分别是,A ( x 1 , y 1 ) (x_1, y_1) (x1,y1),B ( x 2 , y 2 ) (x_2, y_2) (x2,y2),C ( x 3 , y 3 ) (x_3, y_3) (x3,y3)

三个点到圆心的距离相等

{ ( x 1 − x 0 ) 2 + ( y 1 − y 0 ) 2 = r 2 ( x 2 − x 0 ) 2 + ( y 2 − y 0 ) 2 = r 2 ( x 3 − x 0 ) 2 + ( y 3 − y 0 ) 2 = r 2 \left\{ \begin{array}{c} (x_1−x_0)^2+(y_1−y_0)^2=r^2 \\ \\ (x_2−x_0)^2+(y_2−y_0)^2=r^2 \\ \\ (x_3−x_0)^2+(y_3−y_0)^2=r^2 \end{array} \right. (x1x0)2+(y1y0)2=r2(x2x0)2+(y2y0)2=r2(x3x0)2+(y3y0)2=r2
化简得到:
( x 1 − x 2 ) x 0 + ( y 1 − y 2 ) y 0 = ( x 1 2 − x 2 2 ) − ( y 2 2 − y 1 2 ) 2 (x_1-x_2)x_0 + (y_1-y_2)y_0 = \frac{(x_1^2-x_2^2)-(y_2^2-y_1^2)}{2} (x1x2)x0+(y1y2)y0=2(x12x22)(y22y12)
( x 1 − x 3 ) x 0 + ( y 1 − y 3 ) y 0 = ( x 1 2 − x 3 2 ) − ( y 3 2 − y 1 2 ) 2 (x_1-x_3)x_0 + (y_1-y_3)y_0 = \frac{(x_1^2-x_3^2)-(y_3^2-y_1^2)}{2} (x1x3)x0+(y1y3)y0=2(x12x32)(y32y12)

使用克拉默法则对行列式求解
∣ A ∣ = ∣ ( x 1 − x 2 ) ( y 1 − y 2 ) ( x 1 − x 3 ) ( y 1 − y 3 ) ∣ \begin{vmatrix} A \end{vmatrix} = \begin{vmatrix} (x_1-x_2) & (y_1-y_2) \\ \\ (x_1-x_3) & (y_1-y_3) \\ \end{vmatrix} A=(x1x2)(x1x3)(y1y2)(y1y3)

∣ b ∣ = ∣ ( x 1 2 − x 2 2 ) − ( y 2 2 − y 1 2 ) 2 ( x 1 2 − x 3 2 ) − ( y 3 2 − y 1 2 ) 2 ∣ \begin{vmatrix} b \end{vmatrix} = \begin{vmatrix} \cfrac{(x_1^2-x_2^2)-(y_2^2-y_1^2)}{2} \\ \\ \cfrac{(x_1^2-x_3^2)-(y_3^2-y_1^2)}{2} \\ \end{vmatrix} b=2(x12x22)(y22y12)2(x12x32)(y32y12)

∣ A 1 ∣ = ∣ ( x 1 2 − x 2 2 ) − ( y 2 2 − y 1 2 ) 2 ( y 1 − y 2 ) ( x 1 2 − x 3 2 ) − ( y 3 2 − y 1 2 ) 2 ( y 1 − y 3 ) ∣ \begin{vmatrix} A_1 \end{vmatrix} = \begin{vmatrix} \cfrac{(x_1^2-x_2^2)-(y_2^2-y_1^2)}{2} & (y_1-y_2) \\ \\ \cfrac{(x_1^2-x_3^2)-(y_3^2-y_1^2)}{2} & (y_1-y_3) \\ \end{vmatrix} A1=2(x12x22)(y22y12)2(x12x32)(y32y12)(y1y2)(y1y3)

∣ A 2 ∣ = ∣ ( x 1 − x 2 ) ( x 1 2 − x 2 2 ) − ( y 2 2 − y 1 2 ) 2 ( x 1 − x 3 ) ( x 1 2 − x 3 2 ) − ( y 3 2 − y 1 2 ) 2 ∣ \begin{vmatrix} A_2 \end{vmatrix} = \begin{vmatrix} (x_1-x_2) & \cfrac{(x_1^2-x_2^2)-(y_2^2-y_1^2)}{2} \\ \\ (x_1-x_3) & \cfrac{(x_1^2-x_3^2)-(y_3^2-y_1^2)}{2} \\ \end{vmatrix} A2=(x1x2)(x1x3)2(x12x22)(y22y12)2(x12x32)(y32y12)

x 1 = ∣ A 1 ∣ ∣ A ∣ x_1 = \cfrac{\begin{vmatrix}A_1\end{vmatrix}}{\begin{vmatrix}A\end{vmatrix}} x1=AA1 ,   x 2 = ∣ A 2 ∣ ∣ A ∣ x_2 = \cfrac{\begin{vmatrix}A_2\end{vmatrix}}{\begin{vmatrix}A\end{vmatrix}} x2=AA2


a = x 1 − x 2 b = y 1 − y 2 ; c = x 1 − x 3 ; d = y 1 − y 3 ; e = ( x 1 2 − x 2 2 ) − ( y 2 2 − y 1 2 ) 2 f = ( x 1 2 − x 3 2 ) − ( y 3 2 − y 1 2 ) 2 a = x_1 - x_2 \\ b = y_1 - y_2; \\ c = x_1 - x_3; \\ d = y_1 - y_3; \\ e = \cfrac{(x_1^2-x_2^2)-(y_2^2-y_1^2)}{2} \\ f = \cfrac{(x_1^2-x_3^2)-(y_3^2-y_1^2)}{2} a=x1x2b=y1y2;c=x1x3;d=y1y3;e=2(x12x22)(y22y12)f=2(x12x32)(y32y12)


x = e d − b f a d − b c x = \cfrac{ed-bf}{ad-bc} x=adbcedbf
y = a f − e c a d − b c y = \cfrac{af-ec}{ad-bc} y=adbcafec

void function(double x1, double y1, double x2, double y2, double x3, double y3){double a = x1 - x2;double b = y1 - y2;double c = x1 - x3;double d = y1 - y3;double e = ((x1*x1-x2*x2)-(y2*y2-y1*y1))/2;double f = ((x1*x1-x3*x3)-(y3*y3-y1*y1))/2;// 圆心位置 x = (e*d - b*f)/(a*d - b*c);y = (a*f - e*c)/(a*d - b*c);
}

http://chatgpt.dhexx.cn/article/SBYie3ht.shtml

相关文章

空间3点求三点所在空间圆的圆心空间坐标

参考:http://blog.sina.com.cn/s/blog_648868460100h2b8.html(这个博主还有很多关于工程测量的知识和空间几何计算的知识) 已知空间三点的坐标为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),求这三个点所确定的空间圆的圆心坐标和半径。 分析可得约束条件:1、三点共面2、三点到空…

三点定圆(弧)

在计算机图形编程或数控加工编程中,通常需要通过给定的三点来确定一个圆弧,也就是要得到圆弧的半径、圆心,以及判断圆弧的方向 如图所示, 为给定的三点,连接AB 和BC ,分别作AB 和BC 的中垂线,…

已知三点求圆心和半径

https://blog.csdn.net/youhuakongzhi/article/details/86474619 https://blog.csdn.net/qq_43572555/article/details/103470968 很简单的推导,以后用的时候就不用浪费时间了, 圆的一般方程为: 三个已知点为(x1,y1) (x2,y2) (x3,y3) …

由三个点的坐标确定圆和球的圆心和半径

利用三个平面或者空间的点位坐标可以求出该平面圆或者球的圆心或者球心和半径 import numpy as np from numpy.linalg import det # 由圆上三点确定圆心和半径# INPUT # p1 : - 第一个点坐标, list或者array 1x3 # p2 : - 第二个点坐标, list或者array 1x3 # p3 : - 第…

三个点坐标求解一个圆

clear all; clc; close all; %已知随bai便三点,不在同一条du直线上zhi的三点确定一个圆? A1[0 0.05]; A2[0.01 0.06]; A3[0 0.07]; %求圆心坐dao标zhuan A[A1-A2;A2-A3]; B([sum(A1.^2-A2.^2); sum(A2.^2-A3.^2)])/2; if det(A)~0 O(A\B);%O[x y]是圆心坐…

三点确定圆的半径_51CAE_新浪博客

近日通过CAE软件分析弹性体折叠过程中的半径变化趋势,已经从分析结果文件中提取了弯折区域三点的运动轨迹,设想将弯折区域近似为圆弧并通过三点计算得出圆的半径。经网上查找一翻,发现一篇博客有比较详细的计算公式,由于不能直接转…

圆弧方向判断方法和三点确定一个圆的计算方法

圆弧方向判断方法设p1(x1,y1) p2(x2,y2) p3(x3,y3) 求向量 p12(x2-x1,y2-y1) p23(x3-x2,y3-y2) 则当 p12与p23的叉乘(向量积) p12 x p23 (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2) 为正时,p1-p2-p3 路径的走向为逆时针&a…

判断一个点是否在圆内(三点确定一个圆)

三角形的外接圆圆心是任意两边的垂直平分线的交点。 三角形外接圆圆心叫外心。 /// <summary>/// Returns true if the point (p) lies inside the circumcircle made up by points (p1,p2,p3)/// </summary>/// <remarks>/// NOTE: A point on the edge is …

三个点确定一个圆

首先假设圆心为(x0, y0)&#xff0c;半径为r。则这个圆可以表示为&#xff1a; (x−x0)2(y−y0)2r2​ 假设知道的三个点为(x1, y1)&#xff0c;(x2,y2)&#xff0c;(x3,y3)。那么&#xff1a; (x1−x0)2(y1−y0)2r2 (x2−x0)2(y2−y0)2r2 (x3−x0)2(y3−y0)2r2 消去 r2 后变成 …

三点确定一个圆的计算方法

最近在看recast&detour源码的时候有遇到许多数学上的算法问题&#xff0c;特此记录&#xff0c;以便以后查看。 推导过程 问题&#xff1a; 求点p1 p2 p3三点确定的圆的 圆心c 和 半径r 。 思路&#xff1a; 为了方便求解&#xff0c;将坐标系原点平移到p1点。 即新的…

三点确定一个圆(Apple HDU - 6206)(计算几何+高精度)

传送门 三点确定一个圆的计算方法 设一个圆的圆心坐标为(x0,y)&#xff0c;半径为r。那么这个圆的方程可以写成 (x-x0)^2(y-y0)^2r^2 在这个圆上随便取三个点&#xff0c;设这三个点的坐标分别为(x1,y1),(x2,y2),(x3,y3)。那么有 公式(1)(2)相减&#xff0c;(1)(3)相减经过…

与圆有关的位置关系

与圆有关的位置关系 主讲&#xff1a;黄冈中学高级教师 余国琴 知识强化 一、知识概述 1、点和圆的位置关系 如果圆的半径为r&#xff0c;已知点到圆心的距离为d&#xff0c;则可用数量关系表示位置关系&#xff0e; (1)d&#xff1e;r点在圆外&#xff1b; (2)dr点在圆上&a…

三点定圆原理与C++实现

文章目录 1 原理2 C实现 1 原理 根据我们小学二年级就学过的三点定圆定理&#xff1a; 不 共 线 的 三 个 点 可 唯 一 确 定 一 个 圆 不共线的三个点可唯一确定一个圆 不共线的三个点可唯一确定一个圆 且&#xff0c;不共线的三点相互连接必然构成一个三角形&#xff0c;这…

使用C语言实现简单的PNG图像读取

概述 首先&#xff0c;关于png图像的结构&#xff1a;PNG文件的结构、PNG格式的数据结构。这两篇文章说的比较细。我简单地说一下我使用到的地方&#xff1a; 注&#xff1a;①引于PNG格式的数据结构。②引于PNG文件的结构 “png文件的前8个字节为固定的文件头信息&#xff0…

RK3588平台开发系列讲解(Display篇)开机视频的设置

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、开机视频功能介绍二、使用方法2.1、开启与关闭2.2、视频放置位置2.3、编译结果2.4、视频素材要求2.5、参数控制说明沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍RK3588平台开机视频的使用方法…

NR PUCCH(一) PUCCH format 0/1

欢迎关注同名微信公众号“modem协议笔记”。 NR中PUCCH物理信道用来发送上行控制信息Uplink Control Information(UCI)&#xff0c;当然UCI也可以在PUSCH上发送。UCI 内容包括&#xff1a;CSI,HARQ ACK/NACK ,SR 及上述三者的组合信息。 那先看下PUCCH format &#xff0c;序…

NR PUSCH(三) 频域资源分配方式

微信公众号同步更新欢迎关注同名modem协议笔记 这篇看下频域资源分配&#xff0c;本篇内容主要在38.214 6.1.2.2 resource allocation in frequency domain章节中。 相比于R15&#xff0c;R16 频域资源分配有3种类型 Uplink resource allocation scheme type 0/1/2&#xff08…

NR PUSCH(四) Frequency hopping

微信公众号同步更新&#xff0c;欢迎关注同名modem协议笔记 上篇PUSCH 介绍了频域分配方式resource allocation type0/1/2&#xff0c;其中type 0 RBG位图的分配方式比较灵活&#xff0c;type 2对应的interlaced RB 本身就是一种频域的离散化&#xff0c;都可以实现类似的效果…

halcon中阈值分割算子用法

1.threshold(Image : Region : MinGray, MaxGray : )&#xff1a;通过给定的阈值区间对图像进行分割 效果图&#xff1a; read_image (Audi2, audi2) fill_interlace (Audi2, ImageFilled, odd) threshold (ImageFilled, Region, 0, 90) 2.binary_threshold(Image : Region : …

De-interlace 反交错 简介

<script type"text/javascript"> </script> <script type"text/javascript"> </script> 为了更好的理解新的逐行扫瞄的概念&#xff0c;必须先弄清楚电视传输的一些基本知识&#xff0c;一副图像是如何传输的&#xff0c;它与新的…