|
function CalcP3(X,Y)
{
var Xc1,Yc1,Xc2,Yc2,R1,R2,Dx,Dy;
var Xb,Yb,Xe,Ye,Z,Xt,Yt,ZZ,Dummy;
var Temp1,Temp2;
var P= {X1:undefined,Y1:undefined,X2:undefined,Y2:undefined}
var X1= {X:undefined,Y:undefined}
var Y1= {X:undefined,Y:undefined}
var X2= {X:undefined,Y:undefined}
var Y2= {X:undefined,Y:undefined}
// alert("CalcP3")
Prizn=false;
// X1=undefined;
// X2=undefined;
// Y1=undefined;
// Y2=undefined;
Xc1=X.Xc;
Yc1=X.Yc;
R1=X.R;
Xc2=Y.Xc;
Yc2=Y.Yc;
R2=Y.R;
Z=Sqr(Xc1.Re)-Sqr(Xc2.Re)+Sqr(Yc1.Re)-Sqr(Yc2.Re)-Sqr(R1.Re)+Sqr(R2.Re);
Dx=CompSub(Xc2,Xc1);
Dy=CompSub(Yc1,Yc2);
if ((Math.abs(Dx.Re)<Eps) && (Math.abs(Dy.Re)<Eps) && (Math.abs(Dx.Im)<Eps) && (Math.abs(Dy.Im)<Eps))
{
Prizn=true;
return;
}
P=ComDuga1(Xc1,Yc1,Xc2,Yc2,R1,R2);
X1=P.X1;
Y1=P.Y1;
X2=P.X2;
Y2=P.Y2;
// P=LinLin(X1.Re,Y1.Re,X2.Re,Y2.Re,Xc1.Re,Yc1.Re,Xc2.Re,Yc2.Re);
Dummy=X.Xc.Re*(Y.Yc.Re-Y1.Re)+Y.Xc.Re*(Y1.Re-X.Yc.Re)+X1.Re*(X.Yc.Re-Y.Yc.Re);
if (CMPOut==false) if (Dummy <= 0)
{
Temp1=X1; Temp2=Y1;
X1=X2; Y1=Y2;
X2=Temp1; Y2=Temp2;
}
if (CMPOut) { Def1=true; Def2=true; return P }
// if (X.PointBelongs(X1.Re,Y1.Re) && Y.PointBelongs(X1.Re,Y1.Re)) {Def1=true} else {Def1=false}
// if (X.PointBelongs(X2.Re,Y2.Re) && Y.PointBelongs(X2.Re,Y2.Re)) {Def2=true} else {Def2=false}
return P;
} // CalcP3 |