與3座標軸相切的球面
Author: 藍邦偉  老師

x

y

z

顯示xy平面

顯示單位向量

顯示座標軸

Q

Line

n = 3.9 (slider from 1 to 5, step 0.1)
O = (-0.9934387006656843, -3.194534572449703)
A: (x((Corner[3] + 39 * Corner[4]) / 40), y((Corner[1] + 9 * Corner[4]) / 10))
B: (x((4 * Corner[3] + 16 * Corner[4]) / 20), y((Corner[1] + 9 * Corner[4]) / 10))
D: (3 * B + A) / 4
C: (3 * A + B) / 4
a = Segment(A, B)
E = Point(a)
E' = Rotate(Translate[E, Vector[C, D]], 90*°, D)
c = Circle(C, E)
c' = Translate(c, Vector[C, D])
G = Point(c')
c'' = Rotate(c', 270*°, C)
F = Point(c'')
A' = Rotate(A, 270*°, C)
B' = Rotate(B, 270*°, C)
a' = Segment(A', B')
D' = Rotate(D, 270*°, C)
b = Segment(D', F)
E'' = Rotate(E', 270*°, C)
α = Angle(E'', D', F)
d = Segment(D, G)
β = Angle(G, D, E')
K: C + (0, b * cos(β))
K' = Translate(K, Vector[C, O])
w = Vector(O, K')
J: C + (b * cos(α + 90°), b * sin(α + 90°) * sin(β))
J' = Translate(J, Vector[C, O])
v = Vector(O, J')
I: C + (b * cos(α), b * sin(α) * sin(β))
I' = Translate(I, Vector[C, O])
u = Vector(O, I')
e = Segment(C, K)
f = Segment(C, I)
g = Segment(C, J)
L = 10 (slider from 1 to 10, step 1)
I'' = Dilate(I', L, O)
J'' = Dilate(J', L, O)
K'' = Dilate(K', L, O)
I''' = Dilate(I'', -1, O)
J''' = Dilate(J'', -1, O)
K''' = Dilate(K'', -1, O)
u' = Vector(I''', I'')
v' = Vector(J''', J'')
w' = Vector(K''', K'')
h = Segment(D', E'')
i = Segment(D, E')
軌跡1 = Locus(I, F)
L_{axis}: L
j = false
k = false
l = true
list1 = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), t, -L, L], s, -L, L, 1)
list2 = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), s, -L, L], t, -L, L, 1)
C_a: C + (b * cos(α + 10°), b * sin(α + 10°) * sin(β))
C_b: C + (b * cos(α + 20°), b * sin(α + 20°) * sin(β))
C_c: C + (b * cos(α + 30°), b * sin(α + 30°) * sin(β))
C_d: C + (b * cos(α + 40°), b * sin(α + 40°) * sin(β))
C_e: C + (b * cos(α + 50°), b * sin(α + 50°) * sin(β))
p = Conic(C_a, C_b, C_c, C_d, C_e)
P_c: O + n * w
P_b: O + n * v
P_S: O + n * u + n * v + n * w
P_a: O + n * u
m = Segment(P_S, P_c)
n_1 = Segment(P_S, P_b)
q = Segment(P_S, P_a)
P_{S1}: O + n * u + n * v
s = Segment(P_S, P_{S1})
t = Segment(P_a, P_{S1})
a_1 = Segment(P_{S1}, P_b)
b_1 = Line(P_S, O)
r = Circle(P_S, 5 * n / 6)
o = CurveCartesian(x(P_S + 1.5 * n * cos(θ) * u + 1.5 * n * sin(θ) * v), y(P_S + 1.5 * n * cos(θ) * u + 1.5 * n * sin(θ) * v), θ, 0, 6.28319)
o_1 = CurveCartesian(x(P_S + 1.5 * n * cos(θ) * u + 1.5 * n * sin(θ) * w), y(P_S + 1.5 * n * cos(θ) * u + 1.5 * n * sin(θ) * w), θ, 0, 6.28319)
z = false