Průnik přímky a roviny

Přímka g je dána sdruženými průměty bodů D, E; rovina rho je dána sdruženými průměty bodů K, L, M.
Průsečík g a rho je označen R.

Přepínač z zobrazuje body na osách určující volný rovnoběžný průmět.
Přepínač s zobrazuje stopy a stopníky.
Přepínač r zobrazuje řešení sestrojené pomocí krycí přímky r (r_1=g_1 a r leží v rho).
Přepínač n zobrazuje nárys ve volném průmětu.

D_1 = (-2.906129712792347, -5.5497565705101275)
O' = (1.2485349287021417, 13.426887988711616)
E_1 = (9.093190778796325, -0.7)
s = 0 (slider from 0 to 1, step 1)
p = 0 (slider from 0 to 1, step 1)
g_1 = Line(D_1, E_1)
r = 1 (slider from 0 to 1, step 1)
Y' = (-26.379869235947524, -13.484450377697657)
X' = (25.84227918966857, -1.946998981340555)
Z' = (1.8653766909106642, 50.80281331527608)
x' = Ray(O', X')
y' = Ray(O', Y')
z' = Ray(O', Z')
xx' = Line(O', X')
K_1 = (1.4976613093731928, -1.8327953407924087)
L_1 = (7.63872768890679, -2.1560093607678623)
M_1 = (4.083373469176813, -7.650647700350578)
K_2 = (1.4976613093731928, 3.0154149588393993)
M_2 = (4.083373469176813, 1.1569343439805395)
L_2 = (7.63872768890679, 6.087991423156843)
mnohoúhelník1, m_2, k_2, l_2 = Polygon(K_2, L_2, M_2)
mnohoúhelník2, m_1, k_1, l_1 = Polygon(K_1, L_1, M_1)
D_2 = (-2.906129712792347, 8.550455050919046)
E_2 = (9.093190778796325, 2.126576403906901)
g_2 = Line(D_2, E_2)
d_1, d_2 = Ordinala(D_1, D_2)
e_1, e_2 = Ordinala(E_1, E_2)
D'_9, D'_1, D', D'_2, D'_5, D'_6, D'_7, D'_8 = AfPrumetBodu1(D_1, D_2, O', X', Y', Z')
E'_9, E'_1, E', E'_2, E'_5, E'_6, E'_7, E'_8 = AfPrumetBodu1(E_1, E_2, O', X', Y', Z')
g' = Line(D', E')
g'_1 = Line(D'_1, E'_1)
g'_2 = Line(D'_2, E'_2)
K'_9, K'_1, K', K'_2, K'_5, K'_6, K'_7, K'_8 = AfPrumetBodu1(K_1, K_2, O', X', Y', Z')
L'_9, L'_1, L', L'_2, L'_5, L'_6, L'_7, L'_8 = AfPrumetBodu1(L_1, L_2, O', X', Y', Z')
M'_9, M'_1, M', M'_2, M'_5, M'_6, M'_7, M'_8 = AfPrumetBodu1(M_1, M_2, O', X', Y', Z')
mnohoúhelník3, m', k', l' = Polygon(K', L', M')
o = 0 (slider from 0 to 1, step 1)
z = 0 (slider from 0 to 1, step 1)
Rm_1 = Intersect(g_1, Line[K_1, L_1])
Rl_1 = Intersect(g_1, Line[K_1, M_1])
Rk_1 = Intersect(g_1, Line[L_1, M_1])
Rk_2 = Intersect(Line[L_2, M_2], OrthogonalLine[Rk_1, xAxis])
Rl_2 = Intersect(Line[K_2, M_2], OrthogonalLine[Rl_1, xAxis])
Rm_2 = Intersect(Line[K_2, L_2], OrthogonalLine[Rm_1, xAxis])
r_2 = Line(Rk_2, Rm_2)
R_2 = Intersect(r_2, g_2)
R_1 = Intersect(g_1, OrthogonalLine[R_2, xAxis])
r_1 = Line(Rk_1, Rm_1)
a, A = Ordinala(R_1, R_2)
b, B = Ordinala(Rm_1, Rm_2)
c, C = Ordinala(Rl_1, Rl_2)
d, D = Ordinala(Rk_1, Rk_2)
e, E = Ordinala(K_1, K_2)
f, F = Ordinala(L_1, L_2)
g, G = Ordinala(M_1, M_2)
mnohoúhelník4, m'_1, k'_1, l'_1 = Polygon(K'_1, L'_1, M'_1)
Rk'_9, Rk'_1, Rk', Rk'_2, Rk'_5, Rk'_6, Rk'_7, Rk'_8 = AfPrumetBodu1(Rk_1, Rk_2, O', X', Y', Z')
Rl'_9, Rl'_1, Rl', Rl'_2, Rl'_5, Rl'_6, Rl'_7, Rl'_8 = AfPrumetBodu1(Rl_1, Rl_2, O', X', Y', Z')
Rm'_9, Rm'_1, Rm', Rm'_2, Rm'_5, Rm'_6, Rm'_7, Rm'_8 = AfPrumetBodu1(Rm_1, Rm_2, O', X', Y', Z')
r' = Line(Rk', Rm')
R'_9, R'_1, R', R'_2, R'_5, R'_6, R'_7, R'_8 = AfPrumetBodu1(R_1, R_2, O', X', Y', Z')
mnohoúhelník5, m'_2, k'_2, l'_2 = Polygon(K'_2, L'_2, M'_2)
r'_2 = Line(Rk'_2, Rm'_2)
n = 0 (slider from 0 to 1, step 1)
r'_1 = Line(Rk'_1, Rm'_1)
H, I, J = Stopy(K_1, K_2, L_1, L_2, M_1, M_2)
p_1ρ = Line(H, I)
n_2ρ = Line(H, J)
H'_1, H'_2, H', H'_4, H'_5, H'_6, H'_7, H'_8 = AfPrumetBodu1(H, H, O', X', Y', Z')
I'_1, I'_2, I', I'_4, I'_5, I'_6, I'_7, I'_8 = AfPrumetBodu1(I, (0, 0), O', X', Y', Z')
J'_1, J'_2, J', J'_4, J'_5, J'_6, J'_7, J'_8 = AfPrumetBodu1((0, 0), J, O', X', Y', Z')
p'_1ρ = Line(H', I')
n'_2ρ = Line(H', J')
h = Segment(O', H')
Ng_1, Pg_2, Pg_1, Ng_2, S_5, S_6 = Stopniky1(g_1, g_2)
N_1, P_2, P_1, N_2, S_7, S_8 = Stopniky1(r_1, r_2)
N' = Intersect(n'_2ρ, r')
P' = Intersect(p'_1ρ, r'_1)
B' = Intersect(r', Line[I', J'])
B'_1 = Intersect(r'_1, Line[O', Y'])
j = Segment(B', B'_1)
k = Line(I', J')
Pg' = Intersect(g', g'_1)
l = Segment(K_2, Rl_2)
m = Segment(L_2, Rk_2)
q = Segment(K_2, Rm_2)
t = Segment(K_1, Rm_1)
a_1 = Segment(K_1, Rl_1)
b_1 = Segment(L_1, Rk_1)
c_1 = Segment(K', Rl')
f_1 = Segment(K', Rm')
h_1 = Segment(L', Rk')
i_1 = Segment(L'_1, Rk'_1)
j_1 = Segment(K'_1, Rl'_1)
n_1 = Segment(K'_1, Rm'_1)
Ng'_1 = Intersect(g'_1, xx')
Pg'_2 = Intersect(g'_2, xx')
q_1 = Segment(Pg'_2, Pg')
s_1 = Segment(M'_2, Rk'_2)
P'_2 = Intersect(r'_2, xx')
t_1 = Segment(P', P'_2)
N'_1 = Intersect(xx', r'_1)
i = Segment(N'_1, N')
Ng' = Intersect(i, g')
p_1 = Segment(Ng'_1, Ng')

Tool: AfPrumetBodu (command AfPrumetBodu1)
Input: E_1, E_2, O', X', Y', Z'
Output: EE'_x, EE'_1, EE', EE'_2, k, l, m, j

EE' = Point(O', Vector[x(E_1) * Vector[O', X'] - y(E_1) * Vector[O', Y'] + y(E_2) * Vector[O', Z']])
EE'_1 = Point(O', Vector[x(E_1) * Vector[O', X'] - y(E_1) * Vector[O', Y']])
EE'_2 = Point(O', Vector[x(E_1) * Vector[O', X'] + y(E_2) * Vector[O', Z']])
EE'_x = Point(O', Vector[x(E_1) * Vector[O', X']])
j = Segment(EE'_1, EE')
k = Segment(EE', EE'_2)
l = Segment(EE'_2, EE'_x)
m = Segment(EE'_x, EE'_1)

Tool: Ordinala
Input: E_1, E_2
Output: n, D

D = Intersect(Line[E_1, E_2], xAxis)
n = Segment(E_1, E_2)

Tool: Stopniky (command Stopniky1)
Input: a_1, a_2
Output: N_1, P_2, P_1, N_2, c, b

P_2 = Intersect(a_2, xAxis)
N_1 = Intersect(a_1, xAxis)
P_1 = Intersect(a_1, OrthogonalLine[P_2, xAxis])
N_2 = Intersect(a_2, OrthogonalLine[N_1, xAxis])
b = Segment(P_1, P_2)
c = Segment(N_1, N_2)

Tool: Stopy
Input: K_1, K_2, L_1, L_2, M_1, M_2
Output: xR, yR, zR

Pk_1, Pk_2, Pk_3, Pk_4, Pk_5, Pk_6 = Stopniky1(Line[L_1, M_1], Line[L_2, M_2])
Pm_1, Pm_2, Pm_3, Pm_4, Pm_5, Pm_6 = Stopniky1(Line[L_1, K_1], Line[L_2, K_2])
p_1r = Line(Pk_3, Pm_3)
n_2r = Line(Pk_4, Pm_4)
xR = Intersect(p_1r, xAxis)
yR = Intersect(p_1r, yAxis)
zR = Intersect(n_2r, yAxis)