rotation du cylindre

dimensions du cylindre

déplacement du plan

O = Intersect(xAxis, yAxis)
B = Point(xAxis)
i = Vector(O, B)
C = Point(yAxis)
j = Vector(O, C)
theta = 0.24434609527920614 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
phi = 0.3141592653589793 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
u: cos(phi) * i - sin(theta) * sin(phi) * j
w: -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * sin(phi) * i - sin(theta) * cos(phi) * j
v': -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * sin(theta) * j
v: cos(theta) * j
R = 2.4 (slider from 1 to 3, step 0.1)
h = 3.3 (slider from 0.5 to 5, step 0.1)
A = placer(theta, phi, R, 0.0, 0.0)
D = placer(theta, phi, -1.0 * R, 0.0, 0.0)
E = placer(theta, phi, 0.0, R, 0.0)
F = placer(theta, phi, 0.0, -1.0 * R, 0.0)
a = Segment(F, E)
b = Segment(A, D)
G: (R, 0.0)
H: (-1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * R, 0.0)
I = placer(theta, phi, 0.0, 0.0, h)
e = cercle3D(R, 0.0, 0.0, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * R, 0.866 * R, 0.0, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * R, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.866 * R, 0.0, O, phi, theta)
liste1 = Sequence(placer[theta, phi, R * cos(i * 3.1416 / 180.0), R * sin(i * 3.1416 / 180.0), 0.0], i, 0.0, 360.0)
J = placer(theta, phi, 0.0, 0.0, h)
K = placer(theta, phi, -3.5, 3.5, 0.0)
L = placer(theta, phi, -3.5, 3.5, 0.5)
zz = Vector(K, L)
Y = -1.5 (slider from -5 to 5, step 0.05)
M = placer(theta, phi, -4.0, Y, -1.0)
N = placer(theta, phi, -4.0, Y, 6.0)
P = placer(theta, phi, 4.0, Y, -1.0)
Q = placer(theta, phi, 4.0, Y, 6.0)
poly1, q, p, m, n = Polygon(Q, P, M, N)
f = cercle3D(R, 0.0, h, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * R, 0.866 * R, h, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * R, -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.866 * R, h, O, phi, theta)
liste3 = Sequence(placer[theta, phi, R * cos(i * 3.1416 / 180.0), R * sin(i * 3.1416 / 180.0), h], i, 0.0, 360.0)
liste2 = Sequence(Segment[Element[liste1, i], Element[liste3, i]], i, 1.0, 360.0)
c: (R^(2.0) - Y^(2.0))^(0.5)
S = placer(theta, phi, c, Y, h)
T = placer(theta, phi, c, Y, 0.0)
U = placer(theta, phi, -1.0 * c, Y, h)
V = placer(theta, phi, -1.0 * c, Y, 0.0)
poly2, s, t, v_1, u_1 = Polygon(S, T, V, U)

Tool: point3D (command placer)
placer[theta,phi,x,y,z]
Input: theta, phi, a, b, c
Output: D

D: (-1.0 * 1.0 * 1.0 * 1.0 * a * sin(phi) + b * cos(phi), -1.0 * 1.0 * 1.0 * 1.0 * a * sin(theta) * cos(phi) - b * sin(theta) * sin(phi) + c * cos(theta))

Tool: ThreeDCircleTrough3Points (command cercle3D)
Input: x_0, y_0, z_0, x_1, y_1, z_1, x_2, y_2, z_2, A, th, phi
Output: Cercle_{circ}

w_2: x_2 - x_0
v_2: z_2 - z_0
u_2: y_2 - y_0
w_1: x_1 - x_0
v_1: z_1 - z_0
x_{vec0}: v_1 * w_2 - v_2 * w_1
u_1: y_1 - y_0
z_{vec0}: u_1 * v_2 - u_2 * v_1
y_{vec0}: w_1 * u_2 - w_2 * u_1
i_0: -1.0 * 1.0 * sin(th) * Vector[(1.0, 0.0)] - sin(phi) * cos(th) * Vector[(0.0, 1.0)]
k_0: cos(phi) * Vector[(0.0, 1.0)]
j_0: cos(th) * Vector[(1.0, 0.0)] - sin(phi) * sin(th) * Vector[(0.0, 1.0)]
A_0: A + y_0 * j_0 + z_0 * k_0 + x_0 * i_0
A_1: A + y_1 * j_0 + z_1 * k_0 + x_1 * i_0
A_2: A + y_2 * j_0 + z_2 * k_0 + x_2 * i_0
mil_2 = Midpoint(A_2, A_0)
mil_1 = Midpoint(A_0, A_1)
vek_1: (y_{vec0} * w_1 - z_{vec0} * v_1) * j_0 + (z_{vec0} * u_1 - x_{vec0} * w_1) * k_0 + (x_{vec0} * v_1 - y_{vec0} * u_1) * i_0
vek_2: (y_{vec0} * w_2 - z_{vec0} * v_2) * j_0 + (z_{vec0} * u_2 - x_{vec0} * w_2) * k_0 + (x_{vec0} * v_2 - y_{vec0} * u_2) * i_0
media_1 = Line(mil_1, vek_1)
media_2 = Line(mil_2, vek_2)
centre_{cercle} = Intersect(media_1, media_2)
A'_2 = Mirror(A_2, centre_{cercle})
A'_1 = Mirror(A_1, centre_{cercle})
Cercle_{circ} = Conic(A_2, A'_1, A_0, A'_2, A_1)