找回密码
 欢迎注册
楼主: gxqcn

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

[复制链接]
发表于 2012-7-24 18:08:00 | 显示全部楼层
参照35楼的公式,如果没有什么内部矩阵函数,就用下述过程:
A(x1,y1),B(x2,y2),C(x3,y3)
x1=x1-x3 /*先平移C到原点*/
y1=y1-y3
x2=x2-x3
y2=y2-y3
Area=2*(x1*y2-x2*y1) /*计算三角形的4倍面积*/
a=x2^2+y2^2 /*计算两个边长平方*/
b=x1^2+y1^2
xc=x3-(a*y1-b*y2)/Area /*计算圆心坐标*/
yc=y3-(a*x1-b*x2)/Area
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 18:42:27 | 显示全部楼层
参照35楼的公式,如果没有什么内部矩阵函数,就用下述过程:
A(x1,y1),B(x2,y2),C(x3,y3)
/*先平移C到原点,并且计算平移后A和B的坐标*/
x1=x1-x3
y1=y1-y3
x2=x2-x3
y2=y2-y3
/*计算平移后的外心的坐标,最后再把C点平移回去*/
Area=2*(x1*y2-x2*y1) /*计算三角形的4倍面积*/
a=x2^2+y2^2 /*计算两个边长平方*/
b=x1^2+y1^2
xc=x3-(a*y1-b*y2)/Area /*计算圆心坐标*/
yc=y3-(a*x1-b*x2)/Area
hujunhua 发表于 2012-7-24 18:08


我在35起初贴的公式有问题,现在我已经修正过了,
本来是在后面跟帖修正的,结果被郭以为是重复贴删除了,
现在我重新编辑了一下,
35楼的链接http://bbs.emath.ac.cn/viewthrea ... romuid=865#pid44437
参照35楼的公式,如果没有什么内部矩阵函数,就用下述过程:
A(x1,y1),B(x2,y2),C(x3,y3)
x1=x1-x3 /*先平移C到原点*/
y1=y1-y3
x2=x2-x3
y2=y2-y3
Area=2*(x1*y2-x2*y1) /*计算三角形的4倍面积,不是两倍,是平行四边形面积的两倍*/
a=x2^2+y2^2 /*计算两个边长平方*/
b=x1^2+y1^2
xc=x3-(a*y1-b*y2)/Area /*计算圆心坐标*/
yc=y3+(a*x1-b*x2)/Area  /*这行代码修正后的结果*/
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 18:49:05 | 显示全部楼层
参照35楼的公式,如果没有什么内部矩阵函数,就用下述过程:
A(x1,y1),B(x2,y2),C(x3,y3)
x1=x1-x3 /*先平移C到原点*/
y1=y1-y3
x2=x2-x3
y2=y2-y3
Area=2*(x1*y2-x2*y1) /*计算三角形的4倍面积*/
a=x2^2+ ...
hujunhua 发表于 2012-7-24 18:08

你可以看着32楼编程的
http://bbs.emath.ac.cn/viewthrea ... romuid=865#pid44434
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 18:50:35 | 显示全部楼层
就为了扣这几步乘法,在这边使劲******************
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 19:21:00 | 显示全部楼层
(*计算三角形的外心的坐标*)
(*http://bbs.emath.ac.cn/viewthrea ... romuid=865#pid44434*)
(*A(x1,y1),B(x2,y2),C(x3,y3)*)
(*先把A平移到原点,计算平移后的B和C两点的坐标*)
x2=x2-x1;y2=y2-y1;(*平移后B的坐标*)
x3=x3-x1;y3=y3-y1;(*平移后C的坐标*)
(*计算平移后的外心的坐标*)
xy2=x2^2+y2^2;
xy3=x3^2+y3^2;
s=2*(x2*y3-x3*y2);(*三角形面积的四倍,平行四边形的两倍*)
xc=(-y2*xy3+y3*xy2)/s;(*平移后外心的横坐标*)
yc=-(-x2*xy3+x3*xy2)/s;(*平移后外心的纵坐标,注意负号*)
(*把三角形再平移回去*)
xc=xc+x1;
yc=yc+y1;

mathematica语言版本的代码,很容易转化成C语言的!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 19:24:00 | 显示全部楼层
上面的帖子是1001帖,号称一千零一!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 20:07:38 | 显示全部楼层
我已经将郭的计算量下降到原来的76%了,算是下降了1/4,应该还不错吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-25 09:04:47 | 显示全部楼层
(*计算三角形的外心的坐标*)
(*http://bbs.emath.ac.cn/viewthrea ... romuid=865#pid44434*)
(*A(x1,y1),B(x2,y2),C(x3,y3)*)
(*先把A平移到原点,计算平移后的B和C两点的坐标*)
x2=x2-x1;y2= ...
mathematica 发表于 2012-7-24 19:21


还可再优化的:
将s取倒数,可将后面的两次除法转化为乘法,从而在整体上增加一次乘法但减少了一次除法。

另外,这个题除了要得到圆心坐标外,还同时需得到半径,只是没特别指明而已。
不过,在得到圆心后,再求半径已毫无悬念。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-25 09:35:59 | 显示全部楼层
还可再优化的:
将s取倒数,可将后面的两次除法转化为乘法,从而在整体上增加一次乘法但减少了一次除法。

另外,这个题除了要得到圆心坐标外,还同时需得到半径,只是没特别指明而已。
不过,在得到圆心后, ...
gxqcn 发表于 2012-7-25 09:04

两次除法能够变成一次乘法????????
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-25 09:38:34 | 显示全部楼层
请仔细读贴后再回复。。。

应该是:增加两次乘法,减少1次除法。还是划算的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-20 04:46 , Processed in 0.044493 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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