正四面體的兩面角
Author: 藍邦偉  老師

x

y

z

顯示xy平面

顯示單位向量

B

D

C

A

顯示座標軸

G

正四面體的兩面角

Reset

r = 3 (slider from 2 to 3, step 0.1)
O = (8.419347692692435, -11.15456988783524)
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')
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')
K: C + (0, b * cos(β))
e = Segment(C, K)
f = Segment(C, I)
g = Segment(C, J)
K' = Translate(K, Vector[C, O])
L = 13 (slider from 1 to 14, 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
w = Vector(O, K')
k = false
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)
A_2: O + r * sqrt(2) * u + r * sqrt(6) * v
A_4: O + 4 * r * w
A_3: O - 2 * r * sqrt(2) * u
A_1: O + r * sqrt(2) * u - r * sqrt(6) * v
H = Midpoint(A_1, A_2)
N = Midpoint(A_3, A_1)
l = false
M: (A_1 + A_2) / 2
G_0: (A_1 + A_2 + A_3) / 3
t = Segment(M, A_3)
P = Midpoint(G_0, A_3)
θ = Angle(G_0, M, A_4)
a_1 = Segment(A_4, G_0)
b_1 = Segment(A_4, M)
o = false
m, n = SDLine(A_3, A_4, A_2, A_1)
Q = Point(n)
R = Intersect(c'', a', 2)
p, q = SDLine(A_4, A_2, A_3, A_1)
e_1, f_1 = SDLine(A_3, A_1, A_4, A_2)
r_1, s = SDLine(A_4, A_1, A_2, A_3)
i_1, j_1 = SDLine(A_2, A_3, A_4, A_1)
g_1, h_1 = SDLine(A_1, A_2, A_4, A_3)
c_1 = Circle(M, 0.4)
S, T = Intersect(c_1, h_1)
U = Intersect(c_1, t)
V = Intersect(c_1, b_1)
M1: S + V - M
d_1 = Segment(M1, V)
k_1 = Segment(M1, S)
M2: S + U - M
l_1 = Segment(M2, S)
m_1 = Segment(M2, U)
W, Z = Intersect(c_1, g_1)
M3: U + W - M
n_1 = Segment(M3, U)
p_1 = Segment(M3, W)
q_1 = Circle(M, 0.4)
B_1 = Intersect(q_1, b_1)
M4: B_1 + W - M
s_1 = Segment(B_1, M4)
a_2 = Segment(U, W)
b_2 = Segment(M4, W)

Tool: SDLine
Input: A, B, C, D
Output: g, h

b: sgn(sin(Angle[D, B, A]))
a: sgn(sin(Angle[A, B, C]))
c: sgn(a + b + 0.5)
d: sqrt(c)
e: sqrt(-c)
E = Midpoint(A, B)
A' = Dilate(A, d, E)
B' = Dilate(B, d, E)
g = Segment(A', B')
A'_1 = Dilate(A, e, E)
B'_1 = Dilate(B, e, E)
h = Segment(A'_1, B'_1)