Voici le fichier sur lequel je travaille.
Code : Tout sélectionner
// ********Appel des fichiers de macros....************************************* <----
import graph3;
import solids;
import math;
usepackage("relsize");//règle la taille du texte...
// taille de la figure
size(10cm,0);
scale(true);
// ********REGLAGES de la vue / perspective...********************************** <----
currentprojection=orthographic(1,2,2);
currentlight=White;
// ********DECLARATION des VARIABLES et des PARAMETRES...***********************
real R, phi, epsilon, delta, L, n, k, K ;
R=1 ; // rayon de la sphère céleste <----
phi= 43+43/60 ; // latitude géographique du lieu du cadran solaire
epsilon=23+26/60 ; // obliquité de l'écliptique / valeur maximum de delta.
K=-cot(phi*pi/180) ;
// ***************************************************************************** //
// Les points sur la sphère
triple origine = (0,0,0); // Centre de la sphère.
triple poleNord = (0,0,R); // pôle Nord P sur la sphère céleste.
triple poleSud = (0,0,-R); // pôle Sud P' sur la sphère céleste.
triple EqSud = (R,0,0); // Point sud équatorial.
triple EqEst = (0,R,0); // Point équatorial est.
triple Zenith = (R*Sin(90-phi),0,R*Sin(phi)); // Zénith du lieu de latitude phi.
triple OrigineHectemories = R*(Cos(90-phi),0,-Sin(90-phi)); // Intersection commune des Hectémories
//~~~~~~~~~ CONSTRUCTION de la SPHERE CELESTE ~~~~~~~~~
revolution b=sphere(origine,R);
draw(surface(b),palegreen+opacity(.85));
// Construction d'un point de la shère, et pourquoi pas sur une hectémorie...
k=2;
n=6/k ;
L = 35 ;
delta = aTan(K*Cos(n*L));
triple S = R*( Cos(L)*Cos(delta),Sin(L)*Cos(delta), Sin(delta) );
triple Seq=R*(Cos(L),Sin(L),0);
triple Seq_perp=(R*Cos(90-L),-R*Sin(90-L),0);
//~~~~~~~~~ CONSTRUCTION des ARCS de GRAND CERCLE et des PETITS CERCLES ~~~~~~~~~
//~~~~~~~~~ arcs de grand cercle ~~~~~~~~~
path3 meridien = arc(origine, R, 0, 0, 90+(90-phi), 0); // Cercle méridien
path3 cerclehori = circle(O, R, rotate((90-phi),Y)*Z); // Cercle horizon
//~~~~~~~~~ CONSTRUCTION des TROPIQUES et des CERCLES LIMITES sur la SPHERE CELESTE ~~~~~~~~~
//~~~~~~~~~ RAYONS, CENTRES ET CERCLES LIMITES (sphère) ~~~~~~~~~
real Rmax = R*Cos(90-phi) ;
real Rmin = R*Cos(-(90-phi)) ;
triple Cmax = (0,0,R*Sin(90-phi)) ;
triple Cmin = (0,0,R*Sin(-(90-phi))) ;
path3 cerclemax = circle(Cmax, Rmax, Z) ;
path3 cerclemin = circle(Cmin, Rmin, Z) ;
//~~~~~~~~~ TROPIQUE DES SOLSTICES (sphère) ~~~~~~~~~
real Rsolstice = R*Cos(epsilon) ;
real zsolstice = R*Sin(epsilon) ;
triple centre_ete = (0,0,zsolstice) ;
triple centre_hiv = (0,0,-zsolstice) ;
path3 ETE = circle(centre_ete, Rsolstice, Z) ;
path3 HIV = circle(centre_hiv, Rsolstice, Z) ;
//~~~~~~~~~ cercle horaire ~~~~~~~~~
path3 cerclehoraire = arc(origine, R, 0, 0, 90, L) ;
//TRACAGE DES OBJETS DE LA FIGURE...
// Segments...
draw(poleNord--poleSud,white+dashed);
draw(origine--EqSud,white+dashed);
draw(origine--OrigineHectemories,black+dashed+1/4bp);
draw(origine--S,white+dashed);
draw(meridien,1bp+red) ; // MERIDIEN
draw(scale3(R)*unitcircle3,red) ; // EQUATEUR
draw(cerclehori,3yellow) ; // HORIZON
draw(cerclemax,2bp+dotted+3blue) ; // limite supérieure des hectémories
draw(cerclemin,2bp+dotted+3blue) ; // limite inférieure des hectémories
draw(ETE,2bp+dotted+1.5yellow) ; // SOLSTICE ETE
draw(HIV,2bp+dotted+1.5yellow) ; // SOLSTICE HIVER
draw(cerclehoraire,white) ; // Cercle horaire
// POINTS...
dot(origine);
dot(poleNord,3bp+green);
dot(poleSud,3bp+green);
dot(EqSud,3bp+green);
dot(EqEst,3bp+green);
dot(Zenith,3bp+yellow);
dot(OrigineHectemories,3bp+blue);
dot(S,3bp+blue);
dot(Seq,3bp+white);
// ETIQUETTES...
label("{\relsize{-3}{$O$}}", origine,NW);
label("{\relsize{-3}{$P$}}", poleNord,0.4NW);
label("{\relsize{-3}{$Z$}}", Zenith,0.5N);
label("{\relsize{-3}{$E$}}", EqSud,0.5NW);
label("{\relsize{-3}{$Est$}}", EqEst,NW);
label("{\relsize{-4}{$I$}}", OrigineHectemories,S);
// Le repère Oxyz...
limits(O,3/2*R*X+3/2*R*Y+3/2*R*Z);
axes3("$x$","$y$","$z$",Arrow3);
J'ai vu qu'il y a avait la version 1.99 pour macintosh. J'ai tenté de l'installer, mais sans succès. Je vais résoudre ce pépin et voir si la version 1.99 règle le problème...
Merci à vous.