平面的點法式
Author: 藍邦偉  老師

$N$

x

y

z

顯示xy平面

顯示單位向量

顯示座標軸

顯示座標軸

P(

,

p

\vec{N}=(

p

,

p

,

p

)的平面方程式

$ 平面的點法式 $

x

y

z

$ 通過P\;點 $

$ P $

$ O $

L = 7 (slider from 1 to 10, step 1)
O = (1.4911311449931288, -5.6730019458912215)
B_1: (x((4 * Corner[3] + 16 * Corner[4]) / 20), y((Corner[1] + 9 * Corner[4]) / 10))
A_2: (x((Corner[3] + 39 * Corner[4]) / 40), y((Corner[1] + 9 * Corner[4]) / 10))
a_1 = Segment(A_2, B_1)
E_1 = Point(a_1)
D_1: (3 * B_1 + A_2) / 4
c = 1 (slider from -5 to 5, step 1)
b = 2 (slider from -5 to 5, step 1)
a = 2 (slider from -5 to 5, step 1)
z_0 = 1 (slider from -5 to 5, step 1)
y_0 = 2 (slider from -5 to 5, step 1)
x_0 = -2 (slider from -5 to 5, step 1)
C_1: (3 * A_2 + B_1) / 4
c_1 = Circle(C_1, E_1)
c'_1 = Translate(c_1, Vector[C_1, D_1])
c'' = Rotate(c'_1, 270*°, C_1)
F_1 = Point(c'')
G = Point(c'_1)
E_2 = Rotate(Translate[E_1, Vector[C_1, D_1]], 90*°, D_1)
A'_1 = Rotate(A_2, 270*°, C_1)
B' = Rotate(B_1, 270*°, C_1)
a' = Segment(A'_1, B')
D' = Rotate(D_1, 270*°, C_1)
b_1 = Segment(D', F_1)
E'' = Rotate(E_2, 270*°, C_1)
α = Angle(E'', D', F_1)
d_1 = Segment(D_1, G)
β = Angle(G, D_1, E_2)
I: C_1 + (b_1 * cos(α), b_1 * sin(α) * sin(β))
I' = Translate(I, Vector[C_1, O])
u = Vector(O, I')
J: C_1 + (b_1 * cos(α + 90°), b_1 * sin(α + 90°) * sin(β))
J' = Translate(J, Vector[C_1, O])
v = Vector(O, J')
K: C_1 + (0, b_1 * cos(β))
K' = Translate(K, Vector[C_1, O])
w = Vector(O, K')
list1 = Sequence(Sequence[Sequence[(x(O + u_1 * u + v_1 * v + w_1 * w), y(O + u_1 * u + v_1 * v + w_1 * w)), u_1, -L, L], v_1, -L, L], w_1, -L, L)
n: a * u + b * v + c * w
P = Point(list1)
Q = Translate(P, n)
u_0 = Vector(P, Q)
e = Segment(C_1, K)
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'')
i = Segment(D_1, E_2)
軌跡1 = Locus(I, F_1)
L_{axis}: L
j = false
k = false
list_y = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), s, -L, L], t, -L, L, 1)
a_2 = 1
C_e = Intersect(xAxis, yAxis)
cc = Circle(C_e, 1)
OO = Intersect(cc, xAxis, 2)
rr = -0.2 (slider from -5 to 5, step 0.1)
ZP: (rr; α)
XP: (rr, β)
abn: sqrt(a^(2) + b^(2) + c^(2))
b' = OrthogonalLine(P, u_0)
c' = Circle(P, abn)
H = Intersect(c', b', 2)
A' = Rotate(A_2, 315*°, P)
d = OrthogonalLine(A', b')
M = Intersect(c', b', 2)
f = Line(B_1, u_0)
f_1 = Line(B_1, u_0)
N = Intersect(b', f_1)
t = Segment(A', P)
g = Line(P, u_0)
l = Segment(A', P)
h = Circle(P, C_1)
C = Intersect(b', f_1)
A = Intersect(c', b', 2)
B = Intersect(c', e, 2)
D = Intersect(h, l, 1)
m = OrthogonalLine(D, u_0)
p = Line(A, u_0)
E = Intersect(m, p)
E' = Mirror(E, P)
q = Segment(E, E')
r = Line(P, u_0)
F' = Mirror(E, r)
F = Mirror(F', P)
s = Segment(F, F')
P_1: E + F - P
P_2: E - F + P
P_3: E' - F + P
P_4: E' + F - P
多邊形1, p_1, p_2, p_3, p_4 = Polygon(P_1, P_2, P_3, P_4)
o = true
inputBox1 = Textfield(x_0)
inputBox2 = Textfield(y_0)
inputBox3 = Textfield(z_0)
inputBox4 = Textfield(a)
inputBox5 = Textfield(b)
inputBox6 = Textfield(c)
list_x = Sequence(CurveCartesian[x(O + t * u + s * v), y(O + t * u + s * v), t, -L, L], s, -L, L, 1)
list2 = Sequence(i, i, -L, L)
list3 = Sequence(Sum[Sequence[Sum[Sequence[If[x(P) ≟ x(O + u_1 * u + v_1 * v + w_1 * w) ∧ y(P) ≟ y(O + u_1 * u + v_1 * v + w_1 * w), 1, 0], u_1, -L, L]], v_1, -L, L]], w_1, -L, L)
list4 = Sequence(Sum[Sequence[Sum[Sequence[If[x(P) ≟ x(O + u_1 * u + v_1 * v + w_1 * w) ∧ y(P) ≟ y(O + u_1 * u + v_1 * v + w_1 * w), 1, 0], w_1, -L, L]], u_1, -L, L]], v_1, -L, L)
list5 = Sequence(Sum[Sequence[Sum[Sequence[If[x(P) ≟ x(O + u_1 * u + v_1 * v + w_1 * w) ∧ y(P) ≟ y(O + u_1 * u + v_1 * v + w_1 * w), 1, 0], w_1, -L, L]], v_1, -L, L]], u_1, -L, L)
a_x = Sum(list2 * list5)
a_y = Sum(list2 * list4)
a_z = Sum(list2 * list3)
text14: "為E:" + (LaTeX[a]) + "(x" + (LaTeX[If[a_x < 0, "+", "-"]]) + "" + (LaTeX[abs(a_x)]) + ")" + (LaTeX[If[a_y < 0, "-", "+"]]) + "" + (LaTeX[abs(a_y)]) + "(y" + (LaTeX[If[a_y < 0, "+", "-"]]) + "" + (LaTeX[abs(a_y)]) + ")" + (LaTeX[If[a_z < 0, "-", "+"]]) + "" + (LaTeX[abs(a_z)]) + "(z" + (LaTeX[If[a_z < 0, "+", "-"]]) + "" + (LaTeX[abs(a_z)]) + ")=0"
text2: "$通過點P\;(" + (LaTeX[Sum[list2 * list5]]) + "," + (LaTeX[Sum[list2 * list4]]) + "," + (LaTeX[Sum[list2 * list3]]) + ")$"