Author: G. Di Caprio

asse rotante

Castel del Monte - Italy

by G. Di Caprio 2009

tempo = -9.95 (slider from -15 to 15, step 0.05)
h = 4.6 (slider from 0 to 10, step 0.1)
ω = 0.28 (slider from 0 to 2, step 0.02)
dx = 20
centro = 0
hobj = 4.6 (slider from 0 to 10, step 0.1)
dilat = 23 (slider from 0 to 100, step 1)
r = 1 (slider from 0 to 10, step 0.1)
V = (-30.338782114829794, -6.554766276897374)
g = Circle(V, r)
E_1 = Point(g)
i = Ray(V, E_1)
j = OrthogonalLine(E_1, i)
hoss = 7 (slider from 0 to 10, step 0.01)
l: y = hoss
e_2: x = centro
f_2: x = centro - dx
h_2: x = centro + dx
P = Intersect(l, f_2)
Q = Intersect(l, h_2)
l_2 = Segment(P, Q)
q_2: y = hoss + 100.0
r_2: y = hoss - 100.0
T = Intersect(f_2, q_2)
U = Intersect(h_2, q_2)
W = Intersect(f_2, r_2)
Z = Intersect(h_2, r_2)
poli4, p_3, q_3, u_1, t_2 = Polygon(P, Q, U, T)
poli5, w, p_4, q_4, z = Polygon(W, P, Q, Z)
s_2 = Circle(E_1, 5.0)
B_1 = Intersect(s_2, j, 1.0)
OO: (centro, 0.0)
q = OrthogonalLine(E_1, i)
J, K = Intersect(s_2, q)
t = Segment(K, J)
CC = (-29.18300855804377, 6.067612162742935)
c = Circle(CC, h)
A_1 = Point(c)
A = Rotate(A_1, tempo * ω, CC)
a = Line(CC, A)
poli1, poli2, poli3, poli6, poli7, poli8, poli9, poli10, B, C, D, E, F, G, H = DaPuntoAOttagonale(A, CC, t, V, s, OO, hobj, hoss, dilat)
d = Segment(A, B)
e = Segment(B, C)
f = Segment(C, D)
k = Segment(D, E)
m = Segment(E, F)
n = Segment(F, G)
p = Segment(G, H)
a_1 = Segment(H, A)
I, L = Torre(B, A, H, h / 6.0)
M, N = Torre(A, H, G, h / 6.0)
O, R = Torre(H, G, F, h / 6.0)
S, C_1 = Torre(G, F, E, h / 6.0)
D_1, F_1 = Torre(F, E, D, h / 6.0)
G_1, H_1 = Torre(E, D, C, h / 6.0)
I_1, J_1 = Torre(D, C, B, h / 6.0)
K_1, L_1 = Torre(C, B, A, h / 6.0)
poli11, poli12, poli13, poli14, poli15, poli16, poli17, poli18, M_1, N_1, O_1, P_1, Q_1, R_1, S_1 = DaPuntoAOttagonale(N, M, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli19, poli20, poli21, poli22, poli23, poli24, poli25, poli26, T_1, U_1, V_1, W_1, Z_1, A_2, B_2 = DaPuntoAOttagonale(L, I, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli27, poli28, poli29, poli30, poli31, poli32, poli33, poli34, C_2, D_2, E_2, F_2, G_2, H_2, I_2 = DaPuntoAOttagonale(L_1, K_1, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli35, poli36, poli37, poli38, poli39, poli40, poli41, poli42, J_2, K_2, L_2, M_2, N_2, O_2, P_2 = DaPuntoAOttagonale(J_1, I_1, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli43, poli44, poli45, poli46, poli47, poli48, poli49, poli50, Q_2, R_2, S_2, T_2, U_2, V_2, W_2 = DaPuntoAOttagonale(H_1, G_1, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli51, poli52, poli53, poli54, poli55, poli56, poli57, poli58, Z_2, A_3, B_3, C_3, D_3, E_3, F_3 = DaPuntoAOttagonale(F_1, D_1, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli59, poli60, poli61, poli62, poli63, poli64, poli65, poli66, G_3, H_3, I_3, J_3, K_3, L_3, M_3 = DaPuntoAOttagonale(C_1, S, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli67, poli68, poli69, poli70, poli71, poli72, poli73, poli74, N_3, O_3, P_3, Q_3, R_3, S_3, T_3 = DaPuntoAOttagonale(R, O, t, V, s, OO, 10.0 / 9.0 * hobj, hoss, dilat)
poli75, j_1, j_2, k_2, l_1, m_2, n_2, o_2, h_1, q_1, r_1, s_1, t_1, u_2, v_2, f_1, z_2, a_3, b_3, c_3, d_3, e_3, c_1, g_3, h_3, i_3, j_3, k_3, l_3, r_3, n_3, o_3, p_1, q_5, r_4, s_3, n_1, m_1, n_4, o_1, p_2, q_6, r_5, l_4, t_3, u_3, v_1, w_1, z_1, a_2, l_5, c_2, d_2, e_1, f_3, g_2, h_4 = Polygon(J_1, J_2, K_2, L_2, M_2, N_2, O_2, H_1, Q_2, R_2, S_2, T_2, U_2, V_2, F_1, Z_2, A_3, B_3, C_3, D_3, E_3, C_1, G_3, H_3, I_3, J_3, K_3, L_3, R, N_3, O_3, P_3, Q_3, R_3, S_3, N, M_1, N_1, O_1, P_1, Q_1, R_1, L, T_1, U_1, V_1, W_1, Z_1, A_2, L_1, C_2, D_2, E_2, F_2, G_2, H_2)
d_1 = Circle(CC, h / 2.0)
U_3 = Intersect(d_1, a, 1.0)
poli76, poli77, poli78, poli79, poli80, poli81, poli82, poli83, V_3, W_3, Z_3, A_4, B_4, C_4, D_4 = DaPuntoAOttagonale(U_3, CC, t, V, s, OO, hobj, hoss, dilat)
poli84, u_4, v_3, w_3, z_3, a_4, b_4, c_4, d_4 = Polygon(U_3, V_3, W_3, Z_3, A_4, B_4, C_4, D_4)
E_4, F_4, b_1 = DaPuntoASegmentoVerticale(C_1, t, V, s, OO, hobj, hoss, dilat)
G_4, H_4, g_1 = DaPuntoASegmentoVerticale(E_3, t, V, s, OO, hobj, hoss, dilat)
I_4, J_4, i_1 = DaPuntoASegmentoVerticale(F_1, t, V, s, OO, hobj, hoss, dilat)
K_4, L_4, k_1 = DaPuntoASegmentoVerticale(V_2, t, V, s, OO, hobj, hoss, dilat)
M_4, N_4, b_2 = DaPuntoASegmentoVerticale(H_1, t, V, s, OO, hobj, hoss, dilat)
O_4, P_4, i_2 = DaPuntoASegmentoVerticale(O_2, t, V, s, OO, hobj, hoss, dilat)
Q_4, R_4, m_3 = DaPuntoASegmentoVerticale(J_1, t, V, s, OO, hobj, hoss, dilat)
S_4, T_4, e_4 = DaPuntoASegmentoVerticale(H_2, t, V, s, OO, hobj, hoss, dilat)
U_4, V_4, f_4 = DaPuntoASegmentoVerticale(L_1, t, V, s, OO, hobj, hoss, dilat)
W_4, Z_4, g_4 = DaPuntoASegmentoVerticale(A_2, t, V, s, OO, hobj, hoss, dilat)
A_5, B_5, i_4 = DaPuntoASegmentoVerticale(L, t, V, s, OO, hobj, hoss, dilat)
C_5, D_5, j_4 = DaPuntoASegmentoVerticale(R_1, t, V, s, OO, hobj, hoss, dilat)
E_5, F_5, k_4 = DaPuntoASegmentoVerticale(N, t, V, s, OO, hobj, hoss, dilat)
G_5, H_5, m_4 = DaPuntoASegmentoVerticale(S_3, t, V, s, OO, hobj, hoss, dilat)
I_5, J_5, s_4 = DaPuntoASegmentoVerticale(R, t, V, s, OO, hobj, hoss, dilat)
K_5, L_5, t_4 = DaPuntoASegmentoVerticale(L_3, t, V, s, OO, hobj, hoss, dilat)
poli85, n_5, p_5, o_4, m_5 = Polygon(N_4, P_4, O_4, M_4)
poli86, l_6, j_5, i_5, k_5 = Polygon(L_4, J_4, I_4, K_4)
poli87, g_5, e_5, f_5, h_5 = Polygon(G_4, E_4, F_4, H_4)
poli88, k_6, i_6, j_6, l_7 = Polygon(K_5, I_5, J_5, L_5)
poli89, g_6, e_6, f_6, h_6 = Polygon(G_5, E_5, F_5, H_5)
poli90, c_5, a_5, b_5, d_5 = Polygon(C_5, A_5, B_5, D_5)
poli91, w_4, u_5, v_4, z_4 = Polygon(W_4, U_4, V_4, Z_4)
poli92, s_5, q_7, r_6, t_5 = Polygon(S_4, Q_4, R_4, T_4)

Tool: DaPuntoASegmentoVerticale
Punto, Quadro, Vista, Terra, Centro, H Oggetto, H Osservatore, Dilatazione
Input: B, b, V, a, O', hobj, hoss, dilat
Output: P1, P2, j

D = (-25.242413508363708, -6.390367289592004)
C = (-35.10635274668518, -4.746377416538457)
b = Segment(C, D)
d = OrthogonalLine(V, b)
O = Intersect(d, b)
l_O = Segment(C, O)
c = Ray(V, B)
B' = Intersect(b, c)
l_B = Segment(C, B')
g = Segment(V, B)
i: y = hoss
himm: dilat * hobj / g
B'': (l_B - l_O, 0.0)
B''' = Dilate(B'', dilat, O')
h = OrthogonalLine(B''', a)
BB = Intersect(i, h)
P1: (x(BB), y(BB) - hoss / hobj * himm)
P2: (x(BB), y(P1) + himm)
j = Segment(P1, P2)

Tool: DaCerchioAColonna
CentroCerchio, Cerchio, Quadro, Vista, Terra, Centro, H Ogg, H Oss, Dilat
Input: CC, c, tt, V, s, OOO, hobj, hoss, dilat
Output: mm_3, ll_3, nnn_3, ii_3, aa_3, hh_3, bb_3, gg_3, cc_3, ff_3, dd_3, ee_3, poli3, poli2

A = Point(c)
B = Rotate(A, 30.0*°, CC)
poli1, a, b', e, d, k, f, n, p, a_1, b_1, m, d_1, C, D, E, F, G, H, I, L, M, N = Polygon(A, B, 12.0)
O = (-31.618233615569196, -5.164732774674231)
R = (-23.946234980857216, -1.8607333626449847)
tt = Segment(O, R)
aa_1, aa_2, aa_3 = DaPuntoASegmentoVerticale(A, tt, V, s, OOO, hobj, hoss, dilat)
bb_1, bb_2, bb_3 = DaPuntoASegmentoVerticale(B, tt, V, s, OOO, hobj, hoss, dilat)
cc_1, cc_2, cc_3 = DaPuntoASegmentoVerticale(C, tt, V, s, OOO, hobj, hoss, dilat)
dd_1, dd_2, dd_3 = DaPuntoASegmentoVerticale(D, tt, V, s, OOO, hobj, hoss, dilat)
ee_1, ee_2, ee_3 = DaPuntoASegmentoVerticale(E, tt, V, s, OOO, hobj, hoss, dilat)
ff_1, ff_2, ff_3 = DaPuntoASegmentoVerticale(F, tt, V, s, OOO, hobj, hoss, dilat)
gg_1, gg_2, gg_3 = DaPuntoASegmentoVerticale(G, tt, V, s, OOO, hobj, hoss, dilat)
hh_1, hh_2, hh_3 = DaPuntoASegmentoVerticale(H, tt, V, s, OOO, hobj, hoss, dilat)
ii_1, ii_2, ii_3 = DaPuntoASegmentoVerticale(I, tt, V, s, OOO, hobj, hoss, dilat)
ll_1, ll_2, ll_3 = DaPuntoASegmentoVerticale(L, tt, V, s, OOO, hobj, hoss, dilat)
mm_1, mm_2, mm_3 = DaPuntoASegmentoVerticale(M, tt, V, s, OOO, hobj, hoss, dilat)
nnn_1, nnn_2, nnn_3 = DaPuntoASegmentoVerticale(N, tt, V, s, OOO, hobj, hoss, dilat)
poli2, aa_4, bb_4, cc_4, dd_4, ee_4, ff_4, gg_4, hh_4, ii_4, ll_4, mm_4, nnn_4 = Polygon(aa_1, bb_1, cc_1, dd_1, ee_1, ff_1, gg_1, hh_1, ii_1, ll_1, mm_1, nnn_1)
poli3, aa_5, bb_5, cc_5, dd_5, ee_5, ff_5, gg_5, hh_5, ii_5, ll_5, mm_5, nnn_5 = Polygon(aa_2, bb_2, cc_2, dd_2, ee_2, ff_2, gg_2, hh_2, ii_2, ll_2, mm_2, nnn_2)

Tool: DaPuntoAOttagonale
Punto, CentroOttagono, Quadro, Vista, Terra, Centro, HObj, HOss, Dilat
Input: C, B, b_1, V, s, OO, hobj, hoss, dilat
Output: poli1, poli10, poli2, poli3, poli6, poli7, poli8, poli9, C', C'', C''', D, D', D'', D'''

L = (-35.10635274668518, -4.746377416538457)
M = (-25.242413508363708, -6.390367289592004)
b_1 = Segment(L, M)
C'_1 = Rotate(C, 45.0*°, B)
C' = Rotate(C, 45.0*°, B)
C''_1 = Rotate(C', 45.0*°, B)
C'' = Rotate(C', 45.0*°, B)
C'''_1 = Rotate(C'', 45.0*°, B)
C''' = Rotate(C'', 45.0*°, B)
D_2 = Rotate(C''', 45.0*°, B)
D = Rotate(C''', 45.0*°, B)
D'_1 = Rotate(D, 45.0*°, B)
D' = Rotate(D, 45.0*°, B)
D''_1 = Rotate(D', 45.0*°, B)
D'' = Rotate(D', 45.0*°, B)
D'''_1 = Rotate(D'', 45.0*°, B)
D''' = Rotate(D'', 45.0*°, B)
E_1, F_2, e_2 = DaPuntoASegmentoVerticale(C, b_1, V, s, OO, hobj, hoss, dilat)
E, F, e = DaPuntoASegmentoVerticale(C, b_1, V, s, OO, hobj, hoss, dilat)
G, H, f = DaPuntoASegmentoVerticale(C', b_1, V, s, OO, hobj, hoss, dilat)
I, N, k = DaPuntoASegmentoVerticale(C'', b_1, V, s, OO, hobj, hoss, dilat)
O, R, m = DaPuntoASegmentoVerticale(C''', b_1, V, s, OO, hobj, hoss, dilat)
S, C_1, n = DaPuntoASegmentoVerticale(D, b_1, V, s, OO, hobj, hoss, dilat)
D_1, F_1, p = DaPuntoASegmentoVerticale(D', b_1, V, s, OO, hobj, hoss, dilat)
G_1, H_1, a_1 = DaPuntoASegmentoVerticale(D'', b_1, V, s, OO, hobj, hoss, dilat)
I_1, J_1, c_1 = DaPuntoASegmentoVerticale(D''', b_1, V, s, OO, hobj, hoss, dilat)
poli1, i_1, e_1, f_1, j_1 = Polygon(I_1, E, F, J_1)
poli2, e_3, g_1, h_1, f_3 = Polygon(E, G, H, F)
poli3, g_2, i_2, n_1, h_3 = Polygon(G, I, N, H)
poli6, i_3, o, r_1, n_2 = Polygon(I, O, R, N)
poli7, o_1, s_1, c_2, r_3 = Polygon(O, S, C_1, R)
poli8, s_3, d_1, f_4, c_3 = Polygon(S, D_1, F_1, C_1)
poli9, g_3, i_4, j_2, h_4 = Polygon(G_1, I_1, J_1, H_1)
poli10, g_4, d_2, f_5, h_5 = Polygon(G_1, D_1, F_1, H_1)

Tool: Torre
Vertici, Raggio
Input: M, L, I, gae
Output: D_1, O

b_1 = Segment(I, L)
c_1 = Segment(L, M)
d_1 = Circle(L, gae)
O_1 = Intersect(d_1, b_1, 1.0)
O = Intersect(d_1, b_1, 1.0)
R = Intersect(d_1, c_1, 1.0)
e_1 = OrthogonalLine(R, c_1)
f_1 = OrthogonalLine(O, b_1)
g_1 = Circle(R, L)
h_1 = Circle(O, L)
S = Intersect(h_1, f_1, 1.0)
C_1 = Intersect(g_1, e_1, 1.0)
i_1 = LineBisector(C_1, R)
j_1 = LineBisector(O, S)
D_1 = Intersect(i_1, j_1)