cercles et sphères

cercles et sphères

Messagepar P.Fradin » 04 Déc 2010 00:04

Un sujet a été posté puis supprimé dans la rubrique Questions-Réponses, mais j'ai eu le temps de le noter :D . Le problème se ramène à dessiner des cercles sur une sphère, et pas forcément des grands cercles. Voici une petite macro pour l'occasion:

Code: Tout sélectionner
{ cercleS( centre, rayon, A,B,C): A, B, C doivent être distincts et sur la sphère}
[
SaveAttr(), $O:=%1, $R:=%2, $A:=%3, $B:=%4, $C:=%5, $U:=Prodvec(B-A,C-A),
$O':=proj3d(O,[A,U]), //centre du cercle
$r:=Norm(A-O'),        //rayon du cercle,
$N:=normalize(Prodvec(\n,U)), $D:=interPP([O,\n],[O',U]),
$H:=dproj3d(O,D), $h:=Norm(O-H),
if h<=R then
     $s:=sqrt(R^2-h^2), $A':=H+s*N, $B':=H-s*N,
      LineStyle:=solid, Arc3D(A',O',B',r,1,U),
      LineStyle:=dotted, Arc3D(A',O',B',r,-1,U)
else
     if Prodscal(O'-O,\n)>=0 then LineStyle:=solid, Cercle3D(O',r,U),
     else LineStyle:=dotted, Cercle3D(O',r,U)
     fi
fi,
RestoreAttr()
]


Et un petit élément graphique pour tester tout ça (j'ai repris le problème posé), il faut charger le modèle draw2d.mod pour voir la jolie sphère:
Code: Tout sélectionner
[
view3D(-6,6,-6,6,-6,6),size(9),
background(full, whitesmoke), FrenchBabel:=1,
r:=4,a:=r/sqrt(3), A1:=M(-a,a,a), A2:=M(-a,-a,a), A3:=M(a,-a,a), A4:=M(a,a,a),
A5:=M(-a,a,-a), A6:=M(-a,-a,-a), A7:=M(a,-a,-a), A8:=M(a,a,-a),
draw("path", [r,0,circle], //nécessite le modèle draw2d.mod
    [Color:=black,GradStyle:=radial, FillStyle:=gradient, FillColorB:=steelblue]),
Color:=crimson, Width:=8,
cercleS(Origin, r, A1,A2,A3),
cercleS(Origin, r, A5,A6,A7),
cercleS(Origin, r, A3,A7,A8),
cercleS(Origin, r, A1,A2,A6),
cercleS(Origin, r, A2,A3,A7),
cercleS(Origin, r, A1,A4,A8),
Color:=black,
Point3D(A1,A2,A3,A4,A5,A6,A7,A8)
]


sphereFab2.png
sphereFab2.png (52.18 Kio) Consulté 22707 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 07 Juin 2011 18:08

Bonjour,

Je débute avec Texgraph, j'essaie de faire une figure pour apprendre ... alors pourquoi pas l'exo 1 du sujet du bac S liban 2011 : http://www.apmep.asso.fr/IMG/pdf/LibanS31mai2011.pdf. Je suis parti d'exemples de la doc et je modifie peu à peu. Je fais ma figure puis j'exporte avec source4latex.

Quelques difficultés et pardon si la réponse est dans la doc mais j'ai du mal :

Il y a par exemple les points que je n'arrive pas à mettre en couleur (A,B,C et G en rouge ; H et M en bleu) et surtout je ne sais pas comment les intégrer directement dans le code utilisateur objet 1=[ ] alors G est défini comme barycentre et aussi comme variable globale sinon je ne le voyais pas

Pour le cercle (intersection- sphère plan) l'angle de vue est sûrement à adapté mais je n'arrive pas à couper la "calotte" pour voir H le centre du cercle.

J'ai essayé avec S':=ClipFacet(S, [M(-1,-3,-2),vecI+vecJ-vecK]), et { DrawFacet( S' ) en commentaire} mais le résultat n'est pas terrible avec les méridiens et parallèles je cherche l'apparence de bdSphère ou alors il faudrait une transparence ce qui éviterait le clipwin que j'ai mis pour essayer de voir les points et le repère.

Je n'arrive pas non plus à tracer [HM] j'ai essayé avec Ligne3D mais j'ai un accés violation et pas de tracé si j'essaie avec DrawDroite

La figure Image

et le code :
Code: Tout sélectionner
\begin{texgraph}[file,call]
Cmd   [Fenetre(-6+6*i,6-6*i,0.54166666666666+0.54166666666666*i), Marges(0.5,0.5,0.5,0.5), Border(0)];
   [OriginalCoord(1),IdMatrix()];
   [theta:=0.4189, phi:=0.3491, IdMatrix3D(), ModelView(ortho)];
   GrayScale(0);

Var
    B = [-3-2*i,3];
    C = [-2*i,-3];
    A = [1+2*i,-1];
    G = [2,-5];
    H = M(opp(1),opp(3),opp(2));
    M = M(sqrt(1.5),opp(2)-sqrt(1.5),0);

Mac
    xlegend = "$x$";
    ylegend = "$y$";
    zlegend = "$z$";
    text3d1 = "$x$";
    text3d2 = "$y$";
    text3d3 = "$z$";
    text3d4 = "$P$";
    text3d5 = "$P$";

Cmd   [tMin:=-5,tMax:=5,DotScale:=1+i];
Graph objet1 = [
   view(-6,6,-6,6), size(7.5),
   {theta:=-10*deg, phi:=60*deg,}
   P1:=planEqn([2,-1,1,-1]),P2:=planEqn([1,1,-1,-2]),
   G:=bary3d([A,1,B,-1,C,2]),
   S:=Sphere(G,6),
   {D:= interPP(P1,P2),}
   d:=[M(2,0,-5),vecI+vecJ-vecK],
   {H:=interDP(d,P), }
   c:=Copy(getplan(P2,0.75),3,2),
   S':=ClipFacet(S, [M(-1,-3,-2),vecI+vecJ-vecK]),
   {DrawFacet( S', [color:=pink]), }
   DrawDroite(M(-1,-3,-2),(sqrt(1.5)+1)*vecI+(-sqrt(1.5)+1)*vecJ+2*vecK,3),
   Build3D(
   bdSphere(G,6,[color:=darkseagreen, clip:=-1,clipwin:=[M(1,-2,1),M(-1,-2,-1)],
   smooth:=1, backculling:=0]),
   bdCercle(M(-1,-3,-2),3,vecI+vecJ-vecK,[color:=blue, width:=12]),
   bdPlan(P1, [color:=red, opacity:=0.6,
   scale:=1 ]),
   bdPlan(P2, [color:=blue,opacity:=0.4,
   scale:=1.3]),
   bdDroite(d, [color:=red,
   width:=12]),
   bdAxes([0,0],[color:=gold,
   width:=8, arrows:=1]),
   Color:=blue,
   bdLabel(c,"$P$",[color:=blue,labelpos:=[0.5,i]])
   ),
   Display3D(),
   ];
Cmd   [tMin:=-6,tMax:=6];
Graph LabA = LabelDot(Proj3D(A),"$A$","E",1);
Graph LabB = LabelDot(Proj3D(B),"$B$","N",1);
Graph LabC = LabelDot(Proj3D(C),"$C$","E",1);
Graph LabG = LabelDot(Proj3D(G),"$G$","S",1);
Graph LabH = LabelDot(Proj3D(H),"$H$","N",1);
Graph LabM = LabelDot(Proj3D(M),"$M$","S",1);
\end{texgraph}


Merci pour l'aide, tous les conseils sont bienvenus car quand on débute on y passe beaucoup de temps ... :roll:
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43

Re: cercles et sphères

Messagepar P.Fradin » 07 Juin 2011 19:21

Bonjour,

C'est sûr que ce genre de figure on y passe du temps, même quand on connaît le logiciel!
Je te propose ceci (dans un élément graphique utilisateur):
Code: Tout sélectionner
[      view(-6,6,-6,6), Marges(0,0,0,0), size(7.5), background(full,lightgray),
       theta:=0.4189, phi:=0.3491,
       B:=[-3-2*i,3], C:=[-2*i,-3], A:=[1+2*i,-1],
       H:=M(-1,-3,-2), M:=M(sqrt(1.5),-2-sqrt(1.5),0),
       P1:=planEqn([2,-1,1,-1]), P2:=planEqn([1,1,-1,-2]),
       G:=bary3d([A,1,B,-1,C,2]), S:=Sphere(G,6,45,50),
       {D:= interPP(P1,P2),}
       d:=[M(2,0,-5),vecI+vecJ-vecK],
       {H:=interDP(d,P), }
       c:=Copy(getplan(P2,0.75),3,2),
       S':=ClipFacet(S, [M(-1,-3,-2),vecI+vecJ-vecK]),

       Build3D(
       bdPlan(P1, [color:=crimson, opacity:=0.6, scale:=1,border:=1 ]),
       bdPlan(P2, [color:=blue,opacity:=0.6, scale:=1.3,border:=1]),
       bdSphere(G,6, [color:=darkseagreen, clip:=0, contrast:=0.25,
                     opacity:=0.6, clipwin:=[M(1,0,1),M(-1,-2,-1)],
                     backculling:=0]),
       bdCercle(M(-1,-3,-2),3,vecI+vecJ-vecK,[color:=blue, width:=12]),
       bdLine([H,M],[color:=blue, width:=12]),
       bdDroite(d, [color:=red, width:=12]),
       bdAxes([0,0],[color:=gold, width:=8, arrows:=1]),
       bdLabel(c,"$P$",[color:=blue,labelpos:=[0.5,i]])
       ),
       Display3D(),
    Color:=red, {on dessine pas dessus la scène}
    LabelDot3D(A,"$A$","E",1), LabelDot3D(B,"$B$","N",1),
    LabelDot3D(C,"$C$","E",1), LabelDot3D(G,"$G$","S",1),
    Color:=blue,
    LabelDot3D(H,"$H$","N",1), LabelDot3D(M,"$M$","S",1)
]

Sortie pdf:
bac3D.png
bac3D.png (60.01 Kio) Consulté 22477 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 07 Juin 2011 19:37

Merci, c'est beaucoup mieux je vais voir le code de plus près ... très bonne idée le contour des plans avec border:=1
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43

Re: cercles et sphères

Messagepar P.Fradin » 07 Juin 2011 20:10

En fait j'ai repris ton code et modifier deux ou trois détails!
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar P.Fradin » 07 Juin 2011 22:01

Pour le fun, export javaview (ça tourne à la souris):
Code: Tout sélectionner
[      view(-6,6,-6,6), Marges(0,0,0,0), size(9), background(full,lightgray),
       theta:=0.4189, phi:=0.3491,
       B:=[-3-2*i,3], C:=[-2*i,-3], A:=[1+2*i,-1],  H:=M(-1,-3,-2), M:=M(sqrt(1.5),-2-sqrt(1.5),0),
       P1:=planEqn([2,-1,1,-1]), P2:=planEqn([1,1,-1,-2]),  G:=bary3d([A,1,B,-1,C,2]), S:=Sphere(G,6,45,50),
       d:=[M(2,0,-5),vecI+vecJ-vecK],  c:=Copy(getplan(P2,0.75),3,2),  TeXifyLabels:=1,
       Build3D(
       bdPlan(P1, [color:=crimson, opacity:=0.6, scale:=1,border:=1 ]),
       bdPlan(P2, [color:=blue,opacity:=0.6, scale:=1.3,border:=1]),
       bdSphere(G,6, [color:=darkseagreen, clip:=0, contrast:=0.25,
                     opacity:=0.6, clipwin:=[M(1,0,1),M(-1,-2,-1)],
                     smooth:=1, backculling:=0]),
       bdCercle(M(-1,-3,-2),3,vecI+vecJ-vecK,[color:=blue, width:=12]),
       bdLine([H,M],[color:=blue, width:=12]),
       bdDroite(d, [color:=red, width:=12]),
       bdAxes([0,0],[color:=gold, width:=8, arrows:=1]),
       bdLabel(c,"$P$",[color:=blue,labelpos:=[0.25,i]]),
       bdLabel(A,"$A$",[color:=red, showdot:=1, labelpos:=[0.25,1]]),
       bdLabel(B,"$B$",[color:=red, showdot:=1, labelpos:=[0.25,i]]),
       bdLabel(C,"$C$",[color:=red, showdot:=1, labelpos:=[0.25,1]]),
       bdLabel(G,"$G$",[color:=red, showdot:=1, labelpos:=[0.25,-i]]),
       bdLabel(M,"$M$",[color:=blue, showdot:=1, labelpos:=[0.25,-i]]),
       bdLabel(H,"$H$",[color:=blue, showdot:=1, labelpos:=[0.25,i]])
       ),
       Display3D()
]

P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 07 Juin 2011 22:48

Excellent !

Bon évidemment j'essaie ... et quand je copie le code précédent (dans le but d'exporter en javaview) dans un nouvel élément utilisateur : j'ai en cliquant sur OK le message d'erreur : "Failed to execute pstoedit -dt -pta -f ps - psarg -r2400x2400 tex2FlatPs.pdf tex2FlatPs.eps : 2."

Est-ce un problème de configuration ? où est-ce que je m'y prends mal ?
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43

Re: cercles et sphères

Messagepar P.Fradin » 07 Juin 2011 23:00

Le logiciel pstoedit doit être installé et son chemin d'accès dans le PATH!
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 07 Juin 2011 23:22

Oups ! alors j'ai installé puis modifié le path mais j'ai un autre message :

"Le point d'entrée de procédure ??0Geometry@Magik@@AE@IIII_N0@Z est introuvable dans la bibliothèque de liaisons dynamique CORE_RL_Magick++_.dll."

encore un problème d'installation ? (Je suis sous windows XP)
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43

Re: cercles et sphères

Messagepar P.Fradin » 07 Juin 2011 23:40

Il est possible qu'il manque des DLL, va voir sur le site de pstoedit à la rubrique téléchargement.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar P.Fradin » 08 Juin 2011 11:58

Je viens de tester dans un vindows Xp virtuel en installant pstoedit, cela fonctionne à condition de prendre l'installation basique et décocher tout le reste.
Si tu coches d'autres options il y a aura des dll supplémentaires, dont une qui fout le bordel et provoque l'erreur que tu as eue. Je te conseille donc de désinstaller pstoedit et de réinstaller la forme basique uniquement.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 08 Juin 2011 12:52

Yes ! c'était bien ce qu'il fallait faire ( Je me demande si je ne vais pas poster des messages quand j'ai des problèmes de plomberie ... )

Alors je n'ai plus de message d'erreur par contre rien ne se passe lorsque je clique sur le bouton de la barre Suppléments 3D.

J'ai fait ce qui est dit dans la doc : ( avec comme chemin : C:\Program Files\JavaView\jars )

Cela suppose d’une part que ce programme java est installé sur votre machine, et d’autre part que le chemin d’accès à l’archive javaview.
jar ait été renseigné dans le fichier de configuration (menu : Paramètres/Fichier de configuration, un redémarrage
du programme est nécessaire).


y a t'il un problème d'espace entre Program et Files ? (par exemple changer le répertoire d'installation de javaview)
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43

Re: cercles et sphères

Messagepar P.Fradin » 08 Juin 2011 13:17

Flag a écrit:y a t'il un problème d'espace entre Program et Files ? (par exemple changer le répertoire d'installation de javaview)

Il y a de grandes chances! C:\javaview devrait marcher.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: cercles et sphères

Messagepar Flag » 08 Juin 2011 13:29

Ouf ! C'est bon, encore merci pour toutes ces réponses.
Flag
 
Messages: 18
Inscription: 28 Mai 2011 21:43


Revenir vers Géométrie de l'espace

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 16 invités

cron