请教:已知不共线三点,求圆半径,圆心坐标 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要计算也很简单, 就是算三角形外接圆,假设点 p1(x1,y1) p2(x2,y2) p3(x3,y3)计算 p1, p2 的中垂线方程 f1, 计算 p2, p3 的中垂线方程 f2,计算 f1 ,f2 方程的交点,就是圆心圆心和任意一点的距离就是半径根据中垂线性质很容易知道三点就在这个求得的圆上 to tiaoci(我挑刺,我快乐) :考虑中垂线斜率无限大的情况了吗?我的思路也是这个,可是经常除数为0(我是随机取三点的) to MrKnowNothing(尽管一无所知 却努力无所不知) 你可以使用向量方式做,不需要考虑斜率的另外,即使对于3维和3维以上的空间,根据张量知识也是必定确定一个圆的,因为首先根据3点,我们可以确定一个平面,平面方程就是 a * (p2 - p1) + b * (p3 - p1)而根据前面的方法,共面非共线的三点就能确定一个圆 计算中垂线方程这样做p1(x1, y1) p2(x2, y2) p3(x3, y3)边的中点为 (p1 + p2) / 2, (p2 + p3) / 2, (p3 + p1) / 2各边向量为 p2 - p1, p3 - p2, p1 - p3各中垂线向量为 (y1 - y2, x2 - x1), (y2 - y3, x3 - x2), (y3 - y1, x1 - x3)所以三条中垂线方程为V1 = [(x1 + x2)/2 , (y1 + y2)/2 ] + t1 * [y1 - y2, x2 - x1]V2 = [(x2 + x3)/2 , (y2 + y3)/2 ] + t2 * [y2 - y3, x3 - x2]V3 = [(x3 + x1)/2 , (y3 + y1)/2 ] + t3 * [y3 - y1, x1 - x3]上面三个方程是相关的,谁便取两个计算就可以了,取 V1,V2 化成解方程| y1 - y2, y3 - y2 | | t1 | | (x3 - x1) / 2 || | * | | = | || x2 - x1, x2 - x3 | | t2 | | (y3 - x1) / 2 || a b | | t1 | | z1 || | * | | = | || c d | | t2 | | z2 |二元一次方程很容易解的(列替换法)t1 = (z1 * d - z2 * b) / (a * d - c * b)t2 = (z2 * a - z1 * c) / (a * d - c * b)由于 delta 是循环式,所以无论选三个方程中的哪两个都是一样的但这一步的除法不可避免,当 delta 非常小时,最后可能存在误差当然可以使用一定的技巧减少误差 上面 delta 是指| y1 - y2, y3 - y2 || || x2 - x1, x2 - x3 |希望没有推错,阿门~~ PDA多线程调用 水晶报表10自带打印功能吗?我做了一个报表,水晶报表会在顶部加上打印按钮,但是我按了以后只是导出一个文件 急救!!!!!!!(通讯问题) 这些宝贵资料适合入门的朋友学习 高分求:sql超级难题! 又是上次的那个计算公式的问题? listView 的一个小问题,解决后马上给分 这个好象没什么实际用处吗?怎么搞的 Access 2000带密码:用ODBC可连接,程序连接字符串出错,????? 请教如何用最简单的方法打开一个指定文件夹? 如何判断recset已经open了(在线等待) ScaleHeight和ScaleWidth属性与Height和Width 属性有何不同?
要计算也很简单, 就是算三角形外接圆,假设点 p1(x1,y1) p2(x2,y2) p3(x3,y3)计算 p1, p2 的中垂线方程 f1, 计算 p2, p3 的中垂线方程 f2,计算 f1 ,f2 方程的交点,就是圆心圆心和任意一点的距离就是半径根据中垂线性质很容易知道三点就在这个求得的圆上
考虑中垂线斜率无限大的情况了吗?
我的思路也是这个,可是经常除数为0(我是随机取三点的)
你可以使用向量方式做,不需要考虑斜率的另外,即使对于3维和3维以上的空间,根据张量知识也是必定确定一个圆的,因为首先根据3点,我们可以确定一个平面,平面方程就是 a * (p2 - p1) + b * (p3 - p1)而根据前面的方法,共面非共线的三点就能确定一个圆
各边向量为 p2 - p1, p3 - p2, p1 - p3
各中垂线向量为
(y1 - y2, x2 - x1), (y2 - y3, x3 - x2), (y3 - y1, x1 - x3)所以三条中垂线方程为V1 = [(x1 + x2)/2 , (y1 + y2)/2 ] + t1 * [y1 - y2, x2 - x1]
V2 = [(x2 + x3)/2 , (y2 + y3)/2 ] + t2 * [y2 - y3, x3 - x2]
V3 = [(x3 + x1)/2 , (y3 + y1)/2 ] + t3 * [y3 - y1, x1 - x3]上面三个方程是相关的,谁便取两个计算就可以了,取 V1,V2 化成解方程| y1 - y2, y3 - y2 | | t1 | | (x3 - x1) / 2 |
| | * | | = | |
| x2 - x1, x2 - x3 | | t2 | | (y3 - x1) / 2 || a b | | t1 | | z1 |
| | * | | = | |
| c d | | t2 | | z2 |二元一次方程很容易解的(列替换法)t1 = (z1 * d - z2 * b) / (a * d - c * b)
t2 = (z2 * a - z1 * c) / (a * d - c * b)由于 delta 是循环式,所以无论选三个方程中的哪两个都是一样的但这一步的除法不可避免,当 delta 非常小时,最后可能存在误差当然可以使用一定的技巧减少误差
| |
| x2 - x1, x2 - x3 |希望没有推错,阿门~~