找回密码
 欢迎注册
查看: 94006|回复: 73

[讨论] 三角形外心坐标公式

[复制链接]
发表于 2012-7-24 09:17:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
已知:三角形三顶点坐标 $(x_1,y_1), (x_2,y_2), (x_3,y_3)$
求:其外心坐标公式。

要求公式简洁,并便于编程计算(即:方便抽象出大量相似的过程以便于编写子函数)。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 09:30:13 | 显示全部楼层
遗憾地告诉你没有简单的计算方法!!!!!!!!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 09:47:07 | 显示全部楼层
P1,P2,P3 为三角形三顶点,  

d1 = - (P2–P1)·(P1–P3)    // 此为矢量运算:减法、内积;  
d2 = - (P3–P2)·(P2–P1)    // 所得为标量  
d3 = - (P1–P3)·(P3–P2)      

c1 = d2*d3  
c2 = d3*d1  
c3 = d1*d2  
c = c1 + c2 + c3

则,其外接圆半径及圆心为:  
Radius = 1/2 sqrt( (d1+d2)*(d2+d3)*(d3+d1)/c )   
Center = {(c2+c3)P1 + (c3+c1)P2 + (c1+c2)P3}/2c
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 09:49:26 | 显示全部楼层
  1. (*三角形外心坐标公式*)
  2. (*http://bbs.emath.ac.cn/thread-4482-1-1.html*)
  3. Clear["Global`*"];(*Clear all variables*)
  4. eq1=Solve[
  5.     {(x-x1)^2+(y-y1)^2==(x-x2)^2+(y-y2)^2,
  6.     (x-x1)^2+(y-y1)^2==(x-x3)^2+(y-y3)^2},
  7.     {x,y}]
  8. eq2={x,y}/.eq1
  9. (*约分\化简\压缩*)
  10. eq3=Flatten@FullSimplify@Cancel@eq2
  11. (*提取横坐标的分母*)
  12. a=Expand@Denominator@eq3[[1]]
  13. (*提取横坐标的分子*)
  14. b=Expand@Numerator@eq3[[1]]
  15. (*提取纵坐标的分母*)
  16. c=Expand@Denominator@eq3[[2]]
  17. (*提取纵坐标的分子*)
  18. d=Expand@Numerator@eq3[[2]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 09:51:55 | 显示全部楼层
a=-2 x2 y1 + 2 x3 y1 + 2 x1 y2 - 2 x3 y2 - 2 x1 y3 + 2 x2 y3
b=-x2^2 y1 + x3^2 y1 + x1^2 y2 - x3^2 y2 + y1^2 y2 - y1 y2^2 - x1^2 y3 +
  x2^2 y3 - y1^2 y3 + y2^2 y3 + y1 y3^2 - y2 y3^2
c=-2 x2 y1 + 2 x3 y1 + 2 x1 y2 - 2 x3 y2 - 2 x1 y3 + 2 x2 y3
d=-x1^2 x2 + x1 x2^2 + x1^2 x3 - x2^2 x3 - x1 x3^2 + x2 x3^2 - x2 y1^2 +
  x3 y1^2 + x1 y2^2 - x3 y2^2 - x1 y3^2 + x2 y3^2

横坐标是b/a,纵坐标是d/c
其中a=c
mathematica化简失败
a的化简形式可以是
2 (x3 (y1 - y2) + x1 (y2 - y3) + x2 (-y1 + y3))
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 09:54:12 | 显示全部楼层
b=x3^2 (y1 - y2) + x1^2 (y2 - y3) + x2^2 (-y1 + y3)+(y1 - y2) (y1 - y3) (y2 - y3)
这个是我的人工化简!!!!!!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 09:58:57 | 显示全部楼层
上述公式有点复杂,不利于编程,
但还是谢谢了。

有没有比3#更简洁的计算过程?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 10:00:45 | 显示全部楼层
d=x3 (y1 - y2) (y1 + y2) + x1 (y2 - y3) (y2 + y3) + x2 (-y1^2 + y3^2)
    -(x1 - x2) (x1 - x3) (x2 - x3)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 10:07:32 | 显示全部楼层
最土的办法就是联立方程组呀!!!!!!!!!!!!!
外心到三个顶点的距离相等,然后联立方程组求解结果呀!!!!!!!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 10:12:44 | 显示全部楼层
我喜欢追求形式上的优美与简洁,不仅仅是出于美感,
而且因为这样便于记忆,以及编写高效的代码。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-20 21:12 , Processed in 0.046495 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表