x_{1,2}

o_1

o_2

p_1^\rho

n_2^\rho

s_1^I

s_2^I

P_1

N_1

P_2

N_2

A_1

B_1

S_2

A_2

B_2

h_1^I

h_2^I

C_1

D_1

C_2

D_2

h_1^{II}

h_2^{II}

T_1

T_1'

T_2

T_2'

U_1

U_1'

U_2

U_2'

o_{AF}

=\!S_1

o_{S_1S_2}

R

R_1

R_2

K_1

L_1

M_1

Q_1

K_2

L_2

Q_2

M_2

P_1

P_2

N_1

N_2

\textbf{Řez kolmého hranolu obecnou rovinou}

\textrm{Řezem kolmého hranolu obecnou rovinou }\rho,\
\textrm{která není rovnoběžná s osou }o\textrm{ hranolu, je elipsa.}

\textrm{Sestrojíme spádovou přímku I. osnovy roviny }\rho,\
\textrm{která je různoběžná s osou válce. Tedy:}\
o_1\in s_1^I\perp p_1^\rho\ \Rightarrow\ s_2^I=P_2N_2

\textrm{Půdorysným průmětem řezné elipsy}\
\textrm{je podstavná kružnice válce}.\
\textrm{Z polohy bodů }A_1\textrm{ a }B_1\textrm{ plyne poloha bodů }A_2\textrm{ a }B_2,\
\textrm{kterými elipsa v nárysu prochází.}\
\textrm{Dále je }S_2=o_2\cap s_2^I\textrm{ středem elipsy v nárysu.}

\textrm{V rovině }\rho\textrm{ sestrojíme hlavní přímku I. osnovy,}\
\textrm{která protíná osu válce. Tedy:}\
o_1\in h_1^I\parallel p_1^\rho\ \Rightarrow\ N_2\in h_2^I\parallel x_{1,2}

\textrm{Z polohy bodů }C_1\textrm{ a }D_1\textrm{ odvodíme polohu}\
\textrm{bodů }C_2\textrm{ a }D_2,\textrm{kterými elipsa v nárysu prochází.}

\textrm{V rovině }\rho\textrm{ sestrojíme hlavní přímku II. osnovy,}\
\textrm{která protíná osu válce. Tedy:}\
o_1\in h_1^{II}\parallel x_{1,2}\ \Rightarrow\ P_2\in h_2^{II}\parallel n_2^\rho

\textrm{Body }T_2\textrm{ a }T_2'\textrm{ na obrysových površkách válce v nárysu}\
\textrm{jsou body přechodu viditelnosti řezné elipsy v nárysu.}

\textrm{Odvodíme sdružený průměr }U_2\,U_2'\textrm{ k průměru }T_2\,T_2'\
\textrm{nárysné elipsy.}\
U_1\,U_1'\textrm{ je proto průměr kružnice kolmý k průměru }T_1\,T_1'.

\textrm{Polohu bodů }U_2\textrm{ a }U_2'\textrm{ v nárysu, které se promítají}\
\textrm{na osu }o_2,\textrm{ odvodíme pomocí přímky }A_1U_1,\
\textrm{která leží v rovině }\rho.\
\textrm{Její nárys prochází bodem }A_2\textrm{ a osu }o_2\textrm{ protíná v bodě }U_2.\
\textrm{Bod }U_2'\textrm{ je pak středově souměrný podle }S_2.

\textrm{Pro konstrukci nárysné elipsy známe sdružené průměry}\
A_2B_2\textrm{ a }C_2D_2\textrm{ nebo }T_2\,T_2'\textrm{ a }U_2\,U_2'.\
\textrm{Kolmé průměry bychom mohli sestrojit užitím Rytzovy konstrukce.}\
\textrm{Zde ale kolmé průměry nárysné elipsy sestrojíme}\
\textrm{užitím afinity mezi půdorysnou a nárysnou,}\
\textrm{v níž podstavné kružnici válce v půdorysu odpovídá řezná elipsa v nárysu.}

\textrm{Sestrojíme osu }o_{AF}\textrm{ uvedené afinity,}\
\textrm{která prochází například průsečíky }h_1^I\cap h_2^I\textrm{ a }h_1^{II}\cap h_2^{II}.

\textrm{Sestrojíme osu úsečky }S_1S_2,\textrm{ která protíná osu afinity }o_{AF}\textrm{ v bodě }R,\
\textrm{jenž je středem Thaletovy kružnice procházející středy }S_1\textrm{ a }S_2.\
\textrm{Thaletova kružnice protíná osu afinity }o_{AF}\textrm{  v bodech }R_1\textrm{ a }R_2.

\textrm{Kolmé průměry kružnice }K_1L_1\textrm{ a }M_1Q_1\
\textrm{leží na polopřímkách }R_1S_1\textrm{ a }R_2S_1.\
\textrm{Zobrazí se do kolmých průměrů elipsy }K_2L_2\textrm{ a }M_2Q_2\
\textrm{na polopřímkách }R_1S_2\textrm{ a }R_2S_2,\
\textrm{přičemž směrem afinity jsou ordinály kolmé na osu }x_{1,2}.\
K_2L_2\textrm{ a }M_2Q_2\textrm{ jsou tedy kolmé průměry řezné elipsy v nárysu,}\
\textrm{přičemž body }T_2\textrm{ a }T_2'\textrm{ jsou na této elipse body přechodu viditelnosti.}

X_1 = Point(xAxis)
O = Intersect(xAxis, yAxis)
X_2 = Point(xAxis)
O_2 = Point(yAxis)
O_1 = Point(yAxis)
x_{12} = Segment(X_1, X_2)
u = Vector(X_1, X_2)
o_2 = Segment(O_2, O)
X_3 = Point(u)
X_3' = Mirror(X_3, O)
f = OrthogonalLine(X_3, u)
g = OrthogonalLine(X_3', u)
h = OrthogonalLine(O_2, o_2)
X_3'' = Intersect(h, f)
X_3''' = Intersect(h, g)
i = Segment(X_3'', X_3''')
j = Segment(X_3'', X_3)
k = Segment(X_3''', X_3')
c = Circle(O_1, Segment[O, X_3])
X_4 = Point(u)
P = (-1.08, -8.16)
N = (8.64, 8.36)
l = Segment(X_4, P)
m = Segment(X_4, N)
pos = 15 (slider from 0 to 15, step 1)
n = OrthogonalLine(O_1, l)
P_1 = Intersect(n, l)
N_1 = Intersect(x_{12}, n)
S_1 = Point(n)
p = Segment(S_1, N_1)
q = OrthogonalLine(P_1, u)
r = OrthogonalLine(N_1, u)
P_2 = Intersect(x_{12}, q)
N_2 = Intersect(m, r)
s = Segment(P_2, P_1)
t = Segment(N_2, N_1)
a = Segment(P_2, N_2)
A_1, B_1 = Intersect(c, p)
S_2 = Intersect(a, o_2)
b = OrthogonalLine(A_1, u)
d = OrthogonalLine(B_1, u)
A_2 = Intersect(b, a)
B_2 = Intersect(a, d)
e = Segment(A_2, A_1)
f_1 = Segment(B_2, B_1)
g_1 = Line(O_1, l)
H_1 = Point(g_1)
N_1' = Intersect(x_{12}, g_1)
h_1 = OrthogonalLine(N_1', u)
N_2' = Intersect(m, h_1)
i_1 = Line(N_2', u)
C_1, D_1 = Intersect(c, g_1)
j_1 = OrthogonalLine(C_1, u)
k_1 = OrthogonalLine(D_1, u)
C_2 = Intersect(j_1, i_1)
D_2 = Intersect(k_1, i_1)
H_1' = Point(i_1)
H_1'' = Point(i_1)
l_1 = Segment(H_1', H_1'')
m_1 = Segment(N_1', H_1)
n_1 = Segment(N_2', N_1')
p_1 = Segment(C_2, C_1)
q_1 = Segment(D_2, D_1)
r_1 = Line(O_1, u)
s_1 = OrthogonalLine(H_1', l_1)
t_1 = OrthogonalLine(H_1'', l_1)
H_2' = Intersect(r_1, s_1)
H_2'' = Intersect(r_1, t_1)
a_1 = Segment(H_2', H_2'')
P_1' = Intersect(a_1, l)
b_1 = OrthogonalLine(P_1', u)
P_2' = Intersect(x_{12}, b_1)
c_1 = Line(P_2', m)
H_2 = Intersect(c_1, t_1)
d_1 = Segment(P_2', H_2)
e_1 = Segment(P_2', P_1')
T_1, T_1' = Intersect(c, a_1)
T_2 = Intersect(j, d_1)
T_2' = Intersect(k, d_1)
f_2 = OrthogonalLine(O_1, u)
H_3' = Point(f_2)
H_3'' = Mirror(H_3', O_1)
g_2 = Segment(H_3', H_3'')
U_1, U_1' = Intersect(c, g_2)
h_2 = Ray(A_1, U_1)
N_1'' = Intersect(x_{12}, h_2)
i_2 = Segment(A_1, N_1'')
j_2 = OrthogonalLine(N_1'', u)
N_2'' = Intersect(m, j_2)
k_2 = Segment(A_2, N_2'')
C = Intersect(k_2, o_2)
C' = Mirror(C, S_2)
l_2 = Segment(N_1'', N_2'')
Y_1' = Intersect(l_1, g_1)
Y_1 = Intersect(r_1, c_1)
m_2 = Segment(H_2', Y_1)
n_2 = Segment(P_2', Y_1)
p_2 = Segment(N_1', Y_1')
q_2 = Line(Y_1, Y_1')
Y_2 = Point(q_2)
Y_2' = Point(q_2)
r_2 = Segment(Y_2, Y_2')
s_2 = LineBisector(S_2, O_1)
Y_3 = Point(s_2)
Y_3' = Point(s_2)
t_2 = Segment(Y_3, Y_3')
R = Intersect(r_2, t_2)
c_2 = Circle(R, O_1)
R_1, R_2 = Intersect(c_2, r_2)
d_2 = CircleArc(R, R_1, R_2)
a_2 = Ray(R_1, O_1)
b_2 = Ray(R_2, O_1)
e_2 = Ray(R_1, S_2)
f_3 = Ray(R_2, S_2)
K_1, L_1 = Intersect(c, a_2)
M_1, Q_1 = Intersect(c, b_2)
g_3 = Segment(R_1, L_1)
h_3 = Segment(R_2, Q_1)
i_3 = OrthogonalLine(L_1, u)
j_3 = OrthogonalLine(K_1, u)
k_3 = OrthogonalLine(M_1, u)
l_3 = OrthogonalLine(Q_1, u)
L_2 = Intersect(e_2, i_3)
K_2 = Intersect(j_3, e_2)
Q_2 = Intersect(l_3, f_3)
M_2 = Intersect(k_3, f_3)
m_3 = Segment(L_2, R_1)
n_3 = Segment(M_2, M_1)
p_3 = Segment(Q_2, Q_1)
q_3 = Segment(Q_2, R_2)
c_3 = Conic(C', D_2, C, C_2, A_2)
d_3 = Arc(c_3, T_2, T_2')
e_3 = Arc(c_3, T_2', T_2)
r_3 = Segment(K_1, K_2)
s_3 = Segment(L_1, L_2)
v = Vector(X_2, X_1)