一个中学的问题:已知三角形三个顶点坐标,求其外接圆公式

evilfox 2003-12-20 07:32:09
请教
谢谢
...全文
815 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
evilfox 2003-12-21
  • 打赏
  • 举报
回复
非常谢谢dengsf

不过
土土的问
你的ad,bd,cd是怎么得来的?这个矩阵怎么计算啊

还有你能告诉我你从哪里得来的公式么?:)
evilfox 2003-12-21
  • 打赏
  • 举报
回复
呵呵 谢谢各位
我已经用程序实现了
用的是saint001的方法
不过还是用到了行列式求其交点
为这还恶补了一下行列式的求法^ ^
结贴

dengsf 2003-12-21
  • 打赏
  • 举报
回复
ho,原来HUNTON已经指出那个错误了~~
dengsf 2003-12-21
  • 打赏
  • 举报
回复
补充一下,我第一篇回帖那里,判断 d<=0 改为 d==0

我的 ad,bc,cd 都是为计算结果而出现的一些 中间变量,为了看起来清晰一点而已,其实就是 行列式 的计算而已,你应该已经想起了 ^ ^

saint001(saint001)的方法不错。可以很快算出 圆心 坐标,结合某个点可求出 半径,代入式子就可以了~~UP一下。
HUNTON 2003-12-21
  • 打赏
  • 举报
回复
dengsf的结论大体上是对的,但d <= 0输出 "三点不合法"应该改为d = 0输出 "三点不合法",因为d < 0情况只是说明三点是顺时针转是合法的,其实dengsf的结果我很早就得到了,不过输入实在是太麻烦。还有这个结果可以推广到三维空间里不共面的四点求外接球,甚至还可以推广到N维空间不共面的N+1个点求外接球
evilfox 2003-12-21
  • 打赏
  • 举报
回复
汗~~~
许久没摸数学 连线代的行列式都忘了

saint001 的方法简单可行 不错

多谢了

真是佩服各位的数学功底
隔了这么久 难道都不会忘么^_^
saint001 2003-12-21
  • 打赏
  • 举报
回复
根据两条中垂线求交点坐标应该是很简单的了
线段(x1,y1)(x2,y2)的中垂线方程
(x-(x1+x2)/2)*(x2-x1)+(y-(y1+y2)/2)*(y2-y1)=0

x*2(x2-x1)+y*2(y2-y1)-x2^2+x1^2-y2^2+y1^2=0
两条中垂线可以得到方程组
a1*x+b1*y+c1=0
a2*x+b2*y+c2=0
解这个方程组比较简单吧,不用行列式,手动也能写出公式,我就不写了
a1*b2=a2*b1的时候没有唯一解或者无解
dengsf 2003-12-20
  • 打赏
  • 举报
回复
直接将 3 个点代入一般式里面,求出3个系数就可以了。

设三个点是(x1,y1),(x2,y2),(x3,y3),
又设圆的一般式为 x^2 + y^2 + ax + by +c = 0 (a,b,c待定)
则将三个点的坐标分别代入,得 3 个方程,解之即可。

如果你是想在考试中有一般的方法处理,建议到这里为止。

如果是想写程序,则请参考下面步骤:

计算:
| x1 y1 1 |
d = | x2 y2 1 |
| x3 y3 1 |
如果 d <= 0
输出 "三点不合法",
退出程序。

否则:
继续计算:
| -x1^2-y1^2 y1 1 |
ad = | -x2^2-y2^2 y2 1 |
| -x3^2-y3^2 y3 1 |

| x1 -x1^2-y1^2 1 |
bd = | x2 -x2^2-y2^2 1 |
| x3 -x3^2-y3^2 1 |

| x1 y1 -x1^2-y1^2 |
cd = | x2 y2 -x2^2-y2^2 |
| x3 y3 -x3^2-y3^2 |


a = ad/d b = bd/d c = cd/d
输出 x^2 + y^2 + a*x + b*y + c = 0
退出
LeeMaRS 2003-12-20
  • 打赏
  • 举报
回复
外接圆半径:

设任意一个三角形的三边为a, b, c, 边a所对的角为A. 所求外接圆半径为R

根据任意三角形面积公式, 得到 bcsinA/2 = S

再根据正弦定理, 得到 2RsinA = a

两式一除, 得到 (bc/2) / (2R) = S/a

整理, 就得到 R = abc/(4S)

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧