P'

Q'

R'

S'

T'

Degradación de puntos elevados

Cubo en escorzo

M

N

C = Point(xAxis)
A = PointIn(y > 0)
CentroPolígono = PointIn(y < 0)
Tamaño = 0.78 (slider from 0 to (-y(CentroPolígono)), step 0.01)
c = Circle(CentroPolígono, Tamaño)
P = Point(c)
Q = Rotate(P, (360 * ° / 4), CentroPolígono)
polígono1, f, h, i, j, R, S = Polygon(P, Q, 4)
g = Line(Q, P)
B = Intersect(g, xAxis)
k = Segment(B, C)
l = Line(A, xAxis)
O_1 = Point(l)
m = Segment(O_1, A)
P', E_1 = PierodelaFrancesca(xAxis, B, C, A, O_1, P)
Q', H = PierodelaFrancesca(xAxis, B, C, A, O_1, Q)
R', J = PierodelaFrancesca(xAxis, B, C, A, O_1, R)
S', L = PierodelaFrancesca(xAxis, B, C, A, O_1, S)
polígono2, e, l_1, j_1, h_1 = Polygon(E_1, L, J, H)
polígono3, p', s', r', q' = Polygon(P', S', R', Q')
n = Segment(P, B)
p = OrthogonalLine(B, xAxis)
d = Circle(B, Segment[P, Q])
E = Intersect(d, p, 2)
q = Segment(B, A)
r = Segment(E, A)
s = Line(P', xAxis)
M = Intersect(s, q)
t = OrthogonalLine(M, xAxis)
N = Intersect(t, r)
a = OrthogonalLine(P', xAxis)
b = Line(N, xAxis)
T' = Intersect(b, a)
f_1 = Segment(B, E)
g_1 = Segment(M, N)
i_1 = Segment(N, T')
m_1 = Segment(P', M)
D = ElevaciónPiero(xAxis, Q, R, Q', A)
F = ElevaciónPiero(xAxis, R, S, R', A)
G = ElevaciónPiero(xAxis, S, P, S', A)
polígono4, t', g_2, f_2, d_1 = Polygon(T', G, F, D)
I = ElevaciónPiero(xAxis, P, Q, E_1, A)
K = ElevaciónPiero(xAxis, Q, R, H, A)
O = ElevaciónPiero(xAxis, R, S, J, A)
T = ElevaciónPiero(xAxis, S, P, L, A)
polígono5, i_2, t_1, o, k_2 = Polygon(I, T, O, K)
polígono6, l_2, t_2, o_1, j_2 = Polygon(L, T, O, J)
polígono8, l_3, e_2, i_4, t_3 = Polygon(L, E_1, I, T)
polígono9, k_4, o_2, j_3, h_3 = Polygon(K, O, J, H)
C' = Mirror(C, yAxis)
r_1 = Segment(C', C)
polígono10, q'_1, d_2, t'_1, p'_1 = Polygon(Q', D, T', P')
polígono11, f_3, r'_1, s'_1, g_3 = Polygon(F, R', S', G)
polígono12, p'_2, s'_2, g_4, t'_2 = Polygon(P', S', G, T')
polígono13, q'_2, r'_2, f_4, d_3 = Polygon(Q', R', F, D)
u = false
v = false
k_1 = Line(E_1, xAxis)
U = Intersect(k_1, q)
n_1 = OrthogonalLine(U, xAxis)
V = Intersect(n_1, r)
p_1 = Segment(U, E_1)
q_1 = Segment(E_1, I)
s_1 = Segment(I, V)
a_1 = Segment(V, U)
b_1 = Segment(T', P')
polígono7, e_1, h_2, k_3, i_3 = Polygon(E_1, H, K, I)

Tool: Piero de la Francesca (command PierodelaFrancesca)
PierodelaFrancesca[ <Recta>, <Punto>, <Punto>, <Punto>, <Punto>, <Punto> ]
Input: xAxis, B, C, A, O, D
Output: K, Q

f = Line(A, xAxis)
i = Segment(O, C)
polígono1, j, k, l, m, E, F = Polygon(C, B, 4)
p = Line(D, xAxis)
n = Line(E, C)
G = Intersect(p, n)
q = OrthogonalLine(G, xAxis)
r = OrthogonalLine(D, xAxis)
H = Intersect(q, xAxis)
I = Intersect(r, xAxis)
s = Line(A, H)
t = Line(I, A)
J = Intersect(s, i)
a = Line(J, xAxis)
K = Intersect(t, a)
b = Line(B, F)
M = Intersect(p, b)
c = OrthogonalLine(M, xAxis)
N = Intersect(xAxis, c)
d = Line(N, A)
e = Segment(O, B)
P = Intersect(d, e)
f_1 = Line(P, xAxis)
Q = Intersect(t, f_1)

Tool: ElevaciónPiero
ElevaciónPiero[ <EjeX>, <P>, <Q>, <P'>, <A> ]
Input: xAxis, P, Q, P', A
Output: T'

P'

C = Point(xAxis)
g = Line(Q, P)
B = Intersect(g, xAxis)
l = Line(A, xAxis)
O_1 = Point(l)
p = OrthogonalLine(B, xAxis)
d = Circle(B, Segment[P, Q])
E = Intersect(d, p, 2)
q = Segment(B, A)
r = Segment(E, A)
s = Line(P', xAxis)
M = Intersect(s, q)
t = OrthogonalLine(M, xAxis)
N = Intersect(t, r)
a = OrthogonalLine(P', xAxis)
b = Line(N, xAxis)
T' = Intersect(b, a)