0

我知道以下内容:

  • P (x,y 坐标)。
  • A1 和 A2(以度为单位的角度)
  • R(圆的半径)。

...见附图。

现在我需要计算绿色圆圈的中心,使其“相切”?两条蓝线(稍后将与其他形状一起形成一个圆角三角形的点)。

任何帮助将不胜感激!

我的示例代码:

//KNOWNS
P=[-3.0,1.0,0.0];
A1=60; A2=-5;
R=5;

//UNKNOWN
SECRET_CALCULATION = [8.2,4.3,0];//???

//ILLUSTRATION
C0=[0,0,0,1]; C1=[0,1,1,0.3]; C2=[0,1,0,0.4]; C3=[1,0,0,0.4];//Colors
translate(P){
    color(C1) rotate(A1) translate([0,-0.5,0]) square([250,1],0);
    color(C1) rotate(A2) translate([0,-0.5,0]) square([250,1],0);
    color(C2) translate(SECRET_CALCULATION) circle(R);
}


//EXPLANATIONS
color(C0) translate(P) {
    translate(SECRET_CALCULATION){
        translate([0,-0.2,0]) square([R,0.4],0);
        translate([R+1,0,0]) rotate(-90) text(str("R:",R),halign="center",valign="top",0.75);
        translate([0,0.2,0]) text("[x?,y?,0]",halign="center",valign="bottom",0.75);
    }
    rotate(((A1-A2)/2)-90) translate([0,-1,0]) text(str("P: ",P),halign="center",valign="top",0.75);
    rotate(A1) text(str("    A1: ",A1,"°"),halign="left",valign="center",0.75);
    rotate(A2) text(str("    A2: ",A2,"°"),halign="left",valign="center",0.75);
}
4

1 回答 1

0

圆心位于光线 A1 和 A2 的平分线上。所以我们可以找到这个平分线的方向

B = (A1 + A2) / 2        = 27.5 here

(但不要忘记角度归一化 - 角度-5可能表示为355等等)

平分线和A1或之间的夹角A2

D = (A1 - A2) / 2         = 32.5 here

我们可以看到点C(enter)-T(angentpoint)-P与关系形成直角三角形

L (P-C, DistAlongBisector) = R / Sin(D) 

所以我们可以找到中心坐标为

 C.X = P.X + Cos(B) * L
 C.Y = P.Y + Sin(B) * L

快速手动检查

L=5/Sin(32.5)=9.3
C.X = -3 + Cos(27.5)*9.3 = 5.24
C.Y = 1 + Sin(27.5)*9.3 = 5.3
于 2017-04-05T11:00:04.993 回答