 w[-sin(phi),-sin(theta)cos(phi)]                                           
u[cos(phi),-sin(theta)sin(phi)]
  v[0,cos(theta)]
                                         .

équateur

rotation de la sphère

Latitude

Paris

Sydney

Pekin

Sao Paulo

Pretoria

Washington

Tokyo

Nord

Sud

Nord




0




Sud

r

O = Intersect(xAxis, yAxis)
B = Point(xAxis)
i = Vector(O, B)
C = Point(yAxis)
j = Vector(O, C)
theta = 0.20943951023931956 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
phi = 0 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 * 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 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * sin(theta) * j
v: cos(theta) * j
z = 0.56 (slider from -1 to 1, step 0.01)
H = placer(theta, phi, -2.0, -2.0, z)
I = placer(theta, phi, 2.0, -2.0, z)
J = placer(theta, phi, 2.0, 2.0, z)
K = placer(theta, phi, -2.0, 2.0, z)
poly1, i_1, h, k, j_1 = Polygon(I, H, K, J)
d = Circle(O, 1.0)
c = cercle3D(1.0, 0.0, 0.0, -0.5, 0.0, 0.866, -0.5, 0.0, -0.866, O, phi, theta)
e = cercle3D(1.0, 0.0, 0.0, -0.5, 0.866, 0.0, -0.5, -0.866, 0.0, O, phi, theta)
f = cercle3D(0.0, 1.0, 0.0, 0.0, -0.5, 0.866, 0.0, -0.5, -0.866, O, phi, theta)
a: (1.0 - z^(2.0))^(0.5)
g = cercle3D(a, 0.0, z, -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 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * a, 0.866 * a, z, -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 * 1.0 * 1.0 * 1.0 * 1.0 * 0.5 * a, -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 * 1.0 * 1.0 * 1.0 * 1.0 * 0.866 * a, z, O, phi, theta)
p = cercle3D(0.0, 0.0, 1.0, 0.0, 0.0, -1.0, 0.866, 0.5, 0.0, O, phi, theta)
q = cercle3D(0.0, 0.0, 1.0, 0.0, 0.0, -1.0, 0.5, 0.866, 0.0, O, phi, theta)
cercle3D[0, 0, 1, 0, 0, -1, 1, 0, 0, O, phi, theta] = cercle3D(0.0, 0.0, 1.0, 0.5, 0.0, 0.866, 1.0, 0.0, 0.0, O, phi, theta)
r = cercle3D(0.0, 0.0, 1.0, 0.0, 0.0, -1.0, -0.5, 0.866, 0.0, O, phi, theta)
s = cercle3D(0.0, 0.0, 1.0, 0.0, 0.0, -1.0, -0.866, 0.5, 0.0, O, phi, theta)
t = cercle3D(0.866, 0.0, 0.5, 0.0, 0.866, 0.5, 0.612262, 0.612262, 0.5, O, phi, theta)
c_1 = cercle3D(0.5, 0.0, 0.866, 0.0, 0.5, 0.866, 0.3535, 0.3535, 0.866, O, phi, theta)
d_1 = cercle3D(0.866, 0.0, -0.5, 0.0, 0.866, -0.5, 0.612262, 0.612262, -0.5, O, phi, theta)
e_1 = cercle3D(0.5, 0.0, -0.866, 0.0, 0.5, -0.866, 0.3535, 0.3535, -0.866, O, phi, theta)
A = placer(theta, phi, 0.656, 0.023, 0.755)
D = placer(theta, phi, -0.725, 0.402, -0.559)
F = placer(theta, phi, -0.336, 0.689, 0.643)
G = placer(theta, phi, 0.623, -0.668, -0.407)
L = placer(theta, phi, 0.794, 0.422, -0.438)
M = placer(theta, phi, 0.175, -0.757, 0.629)
E = placer(theta, phi, -0.62, 0.52, 0.588)
N = placer(theta, phi, 1.0, 0.0, 0.0)
P = placer(theta, phi, a, 0.0, z)
b = Segment(O, N)
l = Segment(O, P)
α = Angle(P, O, N)
β = Angle(N, O, P)
Q = placer(theta, phi, 0.0, 0.0, 1.0)
R = placer(theta, phi, 0.0, 0.0, -1.0)
m = Segment(Q, R)
n: round(asin(z) * 180.0 / 3.1416)
asin(z): round(asin(z) * 180.0 / 3.1416)
texte5: n + " °"
o = If(β > 180.0 * °, 0.0, 1.0)
a_1 = If(α > 180.0 * °, 0.0, 1.0)
S = placer(theta, phi, 0.0, 0.0, z)
b_1 = Segment(S, P)
f_1 = If(-1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 0.62 * cos(theta) * cos(phi) + 0.52 * cos(theta) * sin(phi) + 0.588 * sin(theta) ≥ 0.0, 1.0, 0.0)
g_1 = If(0.656 * cos(theta) * cos(phi) + 0.023 * cos(theta) * sin(phi) + 0.755 * sin(theta) ≥ 0.0, 1.0, 0.0)
h_1 = If(-1.0 * 1.0 * 1.0 * 1.0 * 0.725 * cos(theta) * cos(phi) + 0.402 * cos(theta) * sin(phi) - 1.0 * 0.559 * sin(theta) ≥ 0.0, 1.0, 0.0)
k_1 = If(-1.0 * 1.0 * 0.336 * cos(theta) * cos(phi) + 0.689 * cos(theta) * sin(phi) + 0.643 * sin(theta) ≥ 0.0, 1.0, 0.0)
l_1 = If(0.623 * cos(theta) * cos(phi) - 0.668 * cos(theta) * sin(phi) - 0.407 * sin(theta) ≥ 0.0, 1.0, 0.0)
m_1 = If(0.794 * cos(theta) * cos(phi) + 0.422 * cos(theta) * sin(phi) - 0.438 * sin(theta) ≥ 0.0, 1.0, 0.0)
n_1 = If(0.175 * cos(theta) * cos(phi) - 0.757 * cos(theta) * sin(phi) + 0.629 * sin(theta) ≥ 0.0, 1.0, 0.0)
o_1 = If(sin(theta) ≥ 0.0, 1.0, 0.0)
p_1 = If(-1.0 * 1.0 * sin(theta) ≥ 0.0, 1.0, 0.0)

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 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * a * sin(phi) + b * cos(phi), -1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 * a * sin(theta) * cos(phi) - b * sin(theta) * sin(phi) + c * cos(theta))

Tool: 3DCerclePar3points (command cercle3D)
coordpt1,coordpt2,coordpt3,A,phi,theta
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 * 1.0 * 1.0 * 1.0 * 1.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)

Tool: 3DcentreDeCercle (command centreCercle3D)
x_1, y_1, z_1, x_2, y_2, z_2, x_3, y_3, z_3 (coords), O (origin), th, phi (angles) : Constructs the center of the circle through the 3 points (x_i,y_i,z_i)
Input: x_0, y_0, z_0, x_1, y_1, z_1, x_2, y_2, z_2, A, th, phi
Output: centre_{cercle}

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 * 1.0 * 1.0 * 1.0 * 1.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)