Problem of Apollonius: Difference between revisions
m
→{{header|XPL0}}
(Added XPL0 example.) |
|||
Line 3,596:
proc real AP(C1, C2, C3, S);
real C1, C2, C3; int S;
real
V11, V12, V13, V14,
V21, V22, V23, V24,
Line 3,604:
W22, W23, W24,
P, Q, M, N, A, B, C, D, RS;
[
[X1SQ:= C1(X) * C1(X);▼
V11:= 2. * (C2(X) - C1(X));
V12:= 2. * (C2(Y) - C1(Y));
V13:=
V14:= 2. * (C2(R) - C1(R));
V21:= 2. * (C3(X) - C2(X));
V22:= 2. * (C3(Y) - C2(Y));
V23:=
V24:= 2. * (C3(R) - C2(R));
if S then [V14:= -V14; V24:= -V24];
Line 3,629 ⟶ 3,630:
W24:= V24/V21 - W14;
P:= -W23 / W22;
Q:= W24 / W22;
M:= -W12*P - W13;
N:= W14 - W12*Q;
A:= N*N + Q*Q - 1.;
B:= M*N - N*C1(X) + P*Q - Q*C1(Y);
Line 3,637 ⟶ 3,638:
else B:= B + C1(R);
B:= B * 2.;
C:=
D:= B*B - 4.*A*C;
RS:= (-B - sqrt(D)) / (2.*A);
Line 3,645 ⟶ 3,646:
];
real
[
C2:= [4., 0., 1.];
C3:= [2., 4., 2.];
|