Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,53 @@
|
|||
circle1$ = " 0.000, 0.000, 1.000"
|
||||
circle2$ = " 4.000, 0.000, 1.000"
|
||||
circle3$ = " 2.000, 4.000, 2.000"
|
||||
|
||||
subroutine ApolloniusSolver(c1$, c2$, c3$, s1, s2, s3)
|
||||
x1 = int(mid(c1$, 3, 1)): y1 = int(mid(c1$, 11, 1)): r1 = int(mid(c1$, 19, 1))
|
||||
x2 = int(mid(c2$, 3, 1)): y2 = int(mid(c2$, 11, 1)): r2 = int(mid(c2$, 19, 1))
|
||||
x3 = int(mid(c3$, 3, 1)): y3 = int(mid(c3$, 11, 1)): r3 = int(mid(c3$, 19, 1))
|
||||
|
||||
v11 = 2 * x2 - 2 * x1
|
||||
v12 = 2 * y2 - 2* y1
|
||||
v13 = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2 - r1 * r1 + r2 * r2
|
||||
v14 = 2 * s2 * r2 - 2 * s1 * r1
|
||||
|
||||
v21 = 2 * x3 - 2 * x2
|
||||
v22 = 2 * y3 - 2 * y2
|
||||
v23 = x2 * x2 - x3 * x3 + y2 * y2 - y3 * y3 - r2 * r2 + r3 * r3
|
||||
v24 = 2 * s3 * r3 - 2 * s2 * r2
|
||||
|
||||
w12 = v12 / v11
|
||||
w13 = v13 / v11
|
||||
w14 = v14 / v11
|
||||
|
||||
w22 = v22 / v21 - w12
|
||||
w23 = v23 / v21 - w13
|
||||
w24 = v24 / v21 - w14
|
||||
|
||||
P = 0 - w23 / w22
|
||||
Q = w24 / w22
|
||||
M = 0 - w12 * P - w13
|
||||
N = w14 - w12 * Q
|
||||
|
||||
a = N * N + Q * Q - 1
|
||||
b = 2 * M * N - 2 * N * x1 + 2 * P * Q - 2 * Q * y1 + 2 * s1 * r1
|
||||
c = x1 * x1 + M * M -2 * M * x1 + P * P + y1 * y1 - 2 * P * y1 - r1 * r1
|
||||
|
||||
D = b * b - 4 * a * c
|
||||
|
||||
Radius = (0 - b - sqr(D)) / (2 * a)
|
||||
XPos = M + N * Radius
|
||||
YPos = P + Q * Radius
|
||||
|
||||
print " "; XPos; ", " ; YPos; ", " ; Radius
|
||||
end subroutine
|
||||
|
||||
print " x_pos y_pos radius"
|
||||
print circle1$
|
||||
print circle2$
|
||||
print circle3$
|
||||
print
|
||||
print "R1: " : call ApolloniusSolver(circle1$, circle2$, circle3$, 1, 1, 1)
|
||||
print "R2: " : call ApolloniusSolver(circle1$, circle2$, circle3$, -1, -1, -1)
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue