空間中的內分點
Author: 藍邦偉  老師

$O$

x

y

z

顯示xy平面

顯示單位向量

顯示座標軸

A(

1

2

,

4

3

,

)

B(

,

,

)

m=

n=

$P$

$ x $

$ m:n= $

$ ： $

A_1: (x((Corner[3] + 39 * Corner[4]) / 40), y((Corner[1] + 9 * Corner[4]) / 10))
B_1: (x((4 * Corner[3] + 16 * Corner[4]) / 20), y((Corner[1] + 9 * Corner[4]) / 10))
a_0 = Segment(A_1, B_1)
C: (3 * A_1 + B_1) / 4
D: (3 * B_1 + A_1) / 4
E = Point(a_0)
c = Circle(C, E)
c' = Translate(c, Vector[C, D])
A' = Rotate(A_1, 270*°, C)
B' = Rotate(B_1, 270*°, C)
a' = Segment(A', B')
c'' = Rotate(c', 270*°, C)
D' = Rotate(D, 270*°, C)
E' = Rotate(Translate[E, Vector[C, D]], 90*°, D)
E'' = Rotate(E', 270*°, C)
F = Point(c'')
G = Point(c')
α = Angle(E'', D', F)
b = Segment(D', F)
d = Segment(D, G)
β = Angle(G, D, E')
I: C + (b * cos(α), b * sin(α) * sin(β))
J: C + (b * cos(α + 90°), b * sin(α + 90°) * sin(β))
K: C + (0, b * cos(β))
e = Segment(C, K)
f = Segment(C, I)
g = Segment(C, J)
O = (7.406829314914325, -6.123240650205571)
I' = Translate(I, Vector[C, O])
J' = Translate(J, Vector[C, O])
K' = Translate(K, Vector[C, O])
L = 10 (slider from 1 to 13, 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')
u = Vector(O, I')
v = Vector(O, J')
k = false
list_x = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), t, -L, L], s, -L, L, 1)
list_2 = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), s, -L, L], t, -L, L, 1)
x_1 = -3 (slider from -10 to 10, step 1)
y_1 = -2 (slider from -10 to 10, step 1)
z_1 = -2 (slider from -10 to 10, step 1)
x_2 = 10 (slider from -10 to 10, step 1)
y_2 = 10 (slider from -10 to 10, step 1)
z_2 = 10 (slider from -10 to 10, step 1)
A: O + x_1 * u + y_1 * v + z_1 * w
B: O + x_2 * u + y_2 * v + z_2 * w
m_2 = Segment(B, A)
R_1: O + x_2 * u + y_2 * v + z_1 * w
n_2 = Segment(B, R_1)
R_2: O + x_2 * u + y_1 * v + z_2 * w
q = Segment(R_2, B)
R_3: O + x_2 * u + y_1 * v + z_1 * w
r = Segment(R_2, R_3)
s = Segment(R_3, R_1)
R_4: O + x_1 * u + y_2 * v + z_1 * w
t = Segment(A, R_3)
a_1 = Segment(R_4, A)
p = Segment(R_4, R_1)
R_5: O + x_1 * u + y_2 * v + z_2 * w
b_1 = Segment(B, R_5)
c_1 = Segment(R_5, R_4)
R_6: O + x_1 * u + y_1 * v + z_2 * w
d_1 = Segment(R_2, R_6)
e_1 = Segment(R_6, A)
f_1 = Segment(R_5, R_6)
l = false
inputBox1 = Textfield(x_1)
inputBox2 = Textfield(y_1)
inputBox3 = Textfield(z_1)
inputBox4 = Textfield(x_2)
inputBox5 = Textfield(z_2)
inputBox6 = Textfield(y_2)
h_1, i_1 = SDLine(R_2, R_3, R_6, B)
j_1, k_1 = SDLine(R_6, R_2, A, R_5)
l_1, m_1 = SDLine(B, R_2, R_5, R_1)
n_1, p_1 = SDLine(B, R_1, R_2, R_5)
q_1, r_1 = SDLine(R_5, R_4, B, R_6)
s_1, t_1 = SDLine(B, R_5, R_1, R_2)
a_2, b_2 = SDLine(R_6, A, R_5, R_2)
c_2, d_2 = SDLine(R_5, R_6, R_4, B)
e_2, f_2 = SDLine(R_1, R_3, B, R_4)
g_2, h_2 = SDLine(R_3, A, R_2, R_1)
i_2, j_2 = SDLine(R_1, R_4, R_3, B)
k_2, l_2 = SDLine(A, R_4, R_6, R_3)
m = 2 (slider from 1 to 10, step 1)
n = 1 (slider from 1 to 10, step 1)
inputBox7 = Textfield(m)
inputBox8 = Textfield(n)
P: n / (m + n) * A + m / (m + n) * B
text9: " \overline{PA} :\overline{PB}=m:n=" + (LaTeX[m]) + ":" + (LaTeX[n]) + ""
text11: "⇒P\;(" + (LaTeX[FractionText[(n * x_1 + m * x_2) / (m + n)]]) + "," + (LaTeX[FractionText[(n * y_1 + m * y_2) / (m + n)]]) + "," + (LaTeX[FractionText[(n * z_1 + m * z_2) / (m + n)]]) + ")"
list1 = Sequence(Polygon[A + (x_2 - x_1) * k / (m + n) * u, A + (x_2 - x_1) * k / (m + n) * u + (y_2 - y_1) * v, A + (x_2 - x_1) * k / (m + n) * u + (y_2 - y_1) * v + (z_2 - z_1) * w, A + (x_2 - x_1) * k / (m + n) * u + (z_2 - z_1) * w], k, 1, m + n - 1)
list2 = Sequence(Polygon[A + (y_2 - y_1) * k / (m + n) * v, A + (y_2 - y_1) * k / (m + n) * v + (x_2 - x_1) * u, A + (y_2 - y_1) * k / (m + n) * v + (x_2 - x_1) * u + (z_2 - z_1) * w, A + (y_2 - y_1) * k / (m + n) * v + (z_2 - z_1) * w], k, 1, m + n - 1)
list3 = Sequence(Polygon[A + (z_2 - z_1) * k / (m + n) * w, A + (z_2 - z_1) * k / (m + n) * w + (y_2 - y_1) * v, A + (z_2 - z_1) * k / (m + n) * w + (y_2 - y_1) * v + (x_2 - x_1) * u, A + (z_2 - z_1) * k / (m + n) * w + (x_2 - x_1) * u], k, 1, m + n - 1)
t_A: "$ A (" + (LaTeX[x_1]) + "," + (LaTeX[y_1]) + "," + (LaTeX[z_1]) + ")$"
t_B: "$ B(" + (LaTeX[x_2]) + "," + (LaTeX[y_2]) + "," + (LaTeX[z_2]) + ") $"
x_3: (n * x_1 + m * x_2) / (m + n)
y_3: (n * y_1 + m * y_2) / (m + n)
z_3: (n * z_1 + m * z_2) / (m + n)

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)