找回密码
 欢迎注册
楼主: 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-12-29 09:56 , Processed in 0.025011 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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