作者flere (人间失格)
站内Prob_Solve
标题Re: [问题] 已知两点求圆心
时间Wed Sep 19 22:58:33 2012
※ 引述《tyc5116 (累人啊....)》之铭言:
: 如题
: 已知一点座标(X1,Y1),旋转n度後,得(X2,Y2)
: 求圆心座标?
: ex,(X1,Y1)= (-√2/2,√2/2),顺时针旋转45度,得(0,1)
: 计算後可得圆心为(0,0)
: 抱歉,数学不是很好(但这不是作业...@@)
: 请问我该怎麽算呢?谢谢
假设第一点为A(X1,Y1)
转了N度後为B(X2,Y2)
这两点的中点为C(X3,Y3) = ( (X1+X2)/2 , (Y1+Y2)/2 )
这两点长度的"一半"为L = sqrt( (X1-X2)^2 + (Y1-Y2)^2 )/2
那麽可以用三角函数算出半径R = L * sec(N/2)
然後原本AB两点的斜率m1 = (Y2-Y1)/(X2-X1)
因为圆心必在这两点的中垂线上
两垂直的线斜率相乘为-1
所以这条中垂腺的斜率为m2 = (X1-X2)/(Y2-Y1)
有了斜率又有上面一点C可以求出此直线方程式
为 : (X1-X2) X + (Y1-Y2) Y = constant
constant 为C点带入上式的结果 = ( (X1^2 - X2^2) + (Y1^2 - Y2^2) ) / 2
呼....
然後再来可以用参数式代表这条方程式
令X' = m
则Y' = ( constant - (X1-X2)*m ) / (Y1-Y2)
这时候只要可以算出m的值就可以锁定圆心啦!!!
有圆心的代表式
又有AB跟R
就可以用距离公式算出m的值~
恩恩圆心应该可以算出两个!!
囧希望没解错> <
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.203.24
1F:→ flere:为什麽我打完,问问题的文章就消失了OAQQQ 09/19 22:59
2F:→ tyc5116:抱歉,问完问题後我以为我解出来了,就删文了 09/20 00:50
3F:→ tyc5116:结果写成程式才发现到不知道怎麽作加减消去法...@@ 09/20 00:50
4F:推 solonely:用矩阵旋转也可以解 09/20 16:04