我知道A点的角度,圆圈经过A点和B点 . 应该有一个独特的解决方案,根据这些信息给出圆心(C)和半径(R) . 我试图找到如下公式 .
R^2 = (Bx - Cx)^2 + (By - Cy)^2
Cx = Ax - R*dy
Cy = Ay + R*dx
(dx,dy)是点A处圆的切线的单位矢量,可以从点A处的sin,cos的角度找到 . 圆的中心是在垂直于(dx,dy)的方向上距离点A的距离R.
把它放在一起给了我
R^2 = (Bx - Ax + R*dy)^2 + (By - Ay - R*dx)^2
乘以这个给出了R的二次方,但二次方的分母(/ 2a部分)是
dx^2 + dy^2 - 1
由于(dx,dy)是单位向量,分母总是0,我得到除零误差 . 我哪里出错了?
3 回答
这个配方对我来说似乎很好 . 让我们扩展表达
这给了
改编
你是正确的,如果(dx,dy)是单位向量,则R ^ 2项消失 . 这不是问题,只是意味着你要求一个线性方程 .
这很容易解决
如果你让U =(u,v)=(Bx-Ax,By-Ay)是从A到B的向量,事情会变得更简单
改编
设T =(dx,dy)为正切,N =(dy,-dx)为正常 . 如果它们是单位长度,则简化为
给
假设您指的是AB线和切线之间的角度 . l,在A圈:
关键是绘制AB的垂直平分线和垂直于l到A的线,并找到交点 . 那将是你圈子的中心 .
我从理论上解决了 . 圆的斜率是半径等于1 .
因此:
slope=(rise^2+run^2)^(1/2)=1
,所以dy^2+dx^2=1^2
和(dy^2+dx^2)^(1/2)=1
.