hexagon logo

Circle tangent to 3 circles

Here is some code that I found and put into PCDMIS code.



* code to solve for internal circle tangent to 3 circles


$$ NO,*************************************
CIR1 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
NOM/XYZ,<0,0,0>,$
MEAS/XYZ,<0,0,0>,$
NOM/IJK,<0,0,1>,$
MEAS/IJK,<0,0,1>,$
RADIUS/1,1
$$ NO,*************************************
CIR2 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
NOM/XYZ,<4,0,0>,$
MEAS/XYZ,<4,0,0>,$
NOM/IJK,<0,0,1>,$
MEAS/IJK,<0,0,1>,$
RADIUS/1,1
$$ NO,*************************************
CIR3 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
NOM/XYZ,<2,4,0>,$
MEAS/XYZ,<2,4,0>,$
NOM/IJK,<0,0,1>,$
MEAS/IJK,<0,0,1>,$
RADIUS/2,2
$$ NO,*************************************
ASSIGN/X1=CIR1.X
ASSIGN/Y1=CIR1.Y
ASSIGN/R1=CIR1.R
$$ NO,*************************************
ASSIGN/X2=CIR2.X
ASSIGN/Y2=CIR2.Y
ASSIGN/R2=CIR2.R
$$ NO,*************************************
ASSIGN/X3=CIR3.X
ASSIGN/Y3=CIR3.Y
ASSIGN/R3=CIR3.R
$$ NO,*************************************
$$ NO,***** S1 S2 S3 ALL -1 FOR INTERNAL TANGENT CIRCLE *****
$$ NO,*************************************
ASSIGN/S1=-1
ASSIGN/S2=-1
ASSIGN/S3=-1
$$ NO,*************************************
ASSIGN/V11=2*(X2-X1)
ASSIGN/V12=2*(Y2-Y1)
ASSIGN/V13=(X1^2)-(X2^2)+(Y1^2)-(Y2^2)-(R1^2)+(R2^2)
ASSIGN/V14=2*(S2*R2)-2*(S1*R1)
$$ NO,*************************************
ASSIGN/V21=(2*X3)-(2*X2)
ASSIGN/V22=(2*Y3)-(2*Y2)
ASSIGN/V23=(X2^2)-(X3^2)+(Y2^2)-(Y3^2)-(R2^2)+(R3^2)
ASSIGN/V24=2*(S3*R3)-2*(S2*R2)
$$ NO,*************************************
ASSIGN/W12=V12/V11
ASSIGN/W13=V13/V11
ASSIGN/W14=V14/V11
$$ NO,*************************************
ASSIGN/W22=(V22/V21)-W12
ASSIGN/W23=(V23/V21)-W13
ASSIGN/W24=(V24/V21)-W14
$$ NO,*************************************
ASSIGN/P=0-(W23/W22)
ASSIGN/Q=W24/W22
ASSIGN/M=0-(W12*P)-W13
ASSIGN/N=W14-(W12*Q)
$$ NO,*************************************
ASSIGN/A=(N^2)+(Q^2)-1
ASSIGN/B=(2*M*N)-(2*N*X1)+2*(P*Q)-2*(Q*Y1)+2*(S1*R1)
ASSIGN/C=(X1^2)+(M^2)-2*(M*X1)+(P^2)+(Y1^2)-2*(P*Y1)-(R1^2)
$$ NO,*************************************
ASSIGN/D=(B^2)-4*A*C
$$ NO,*************************************
ASSIGN/RADIUS=(0-(B)-(SQRT(D)))/(2*A)
ASSIGN/XPOS=M+N*RADIUS
ASSIGN/YPOS=P+Q*RADIUS
$$ NO,*************************************



Use as you wish.