GeoSp
From GeoGebraWiki
Voici donc une première explication du fichier et des macros que j'ai développé pour faire de la 3d avec GeoGebra. Pour voir ce que ça donne, vous pouvez ouvrir le fichier 3d-exemple.ggb.
Philosophie du truc
L'idée de base est de représenter des objets 3d codés par des listes dans la fenêtre GeoGebra. Le principe de projection est le même que celui présenté sur le wiki pour la géométrie dans l'espace : deux angles alpha et beta. Ces angles sont regroupé dans une liste nommée persp.
Les objets que l'on peut représenter sont :
des points 3d, par une liste de trois nombres {x,y,z}
des vecteurs 3d, de la même manière
des matrices 3x3, par une liste de trois vecteurs
des droites 3d, par une liste {pt,vd} contenant un point et un vecteur directeur
des plans, par une liste {pt,vn} contenant un point et un vecteur normal
des cercles 3d, par une liste {pt,vn,r} contenant le centre, un vecteur normal et le rayon
Ainsi, lorsqu'on veut tracer un objet 3d, on crée d'abord sa définition sous la forme d'une liste (ou par construction avec les macros), puis on trace l'objet 2d qui lui correspond (avec les macros commençant par Tr). Pour un cercle, on aura donc une ellipse qui s'affichera en 2d. (Evidemment, l'idée qui me taraude serait de faire une sorte de "skin" 3d pour GeoGebra, pour éviter cette double manipulation...)
J'ai ensuite développé une série de macros permettant des intersections, des constructions, des affichages... avec la limite que les parties cachées doivent être gérées à la main...
Le mieux je pense est de voir l'exemple décrit ci-dessous.
Exemple
L'exemple peut être fait à partir du fichier vide 3d.ggb, en entrant les lignes de commande ci-dessous. On peut visualiser le résultat dans le fichier 3d-exemple.ggb.
Avant toute chose on place trois points libres Al, Bl, Cl sur la "planisphère", située en bas à gauche. C'est une méthode un peu bricolée pour pouvoir faire des points libres sur la sphère.
On crée ensuite les points 3d correspondants (les vrais points sur la sphère)...
Ap=PointLongLat[Al,longlat] Bp=PointLongLat[Bl,longlat] Cp=PointLongLat[Cl,longlat]
... qu'on affiche sur la sphère.
A=AffPoint[Ap,persp] B=AffPoint[Bp,persp] C=AffPoint[Cp,persp]
On trace le triangle sphérique ABC constitué des 3 petits arcs.
AB=TrGCPetitArc[Ap,Bp,persp] BC=TrGCPetitArc[Bp,Cp,persp] CA=TrGCPetitArc[Cp,Ap,persp]
On trace les angles en A et B (avec une taille apparente donnée par angTaille=10°).
angTaille=10° angA=TrSphAng[Bp,Ap,Cp,angTaille,persp] angB=TrSphAng[Cp,Bp,Ap,angTaille,persp]
On crée et trace la hauteur issue de C.
hauteur=GCPerp[Ap,Bp,Cp] hDC=TrDemiCercles[hauteur,persp]
Plus compliqué: on détermine le point 3d Hp, pied de la hauteur. On l'affiche.
ABcercle=GCDeuxPoints[Ap,Bp] hDroite=InterDeuxPlans[ABcercle,hauteur] Hp1=Elément[hDroite,2] Hp=VReelProd[-1,Hp1] H=AffPoint[Hp,persp]
On trace l'angle droit en H.
angTaille2=8° angH=TrSphAngDroit[Bp,Hp,Cp,angTaille2,persp]
Le résultat est contenu dans le fichier 3d-exemple.ggb.


