Le langage Imageo3d

Imageo3d permet d'afficher des figures de l'espace et de les faire tourner en déplaçant la souris. Les figures affichées sont définies à partir d'un script utilisant un langage simple.

Description du langage Imageo3d

Un script Imageo3d est un texte dont chaque ligne permet :

  • soit de créer et de nommer un objet géométrique (point, droite, segment, face ou plan)
  • soit de créer directement certains solides
  • soit de donner une instruction concernant le mode d'affichage des objets.

Chaque objet est créé par une instruction du type:
NOM=TYPE(param1, param2,...).

Le nom peut être choisi librement (lettres non accentuées et chiffres), les noms de points seront seuls affichés. Ce nom permet de faire référence à l'objet dans les instructions suivantes, il n'est cependant pas obligatoire. L'instruction sera alors réduite à
TYPE(param1, param2,...)

Le type définit un mode de construction. Les paramètres, en général des noms d'objets ou des nombres, dépendent de la construction désirée. Les noms d'objets peuvent être remplacés par des instructions permettant d'obtenir les objets; dans ce cas ceux-ci ne sont pas affichés.

Qu'il s'agisse de noms ou d'instructions, tout peut être écrit en majuscules ou en minuscules, Imageo3d effectuera une conversion automatique en majuscules.

Les points libres

Les objets de base sont les points libres : ils sont définis par leurs coordonnées cartésiennes dans un repère orthonormal qui n'est pas affiché. Il est conseillé de choisir les coordonnées dans l'intervalle [-10, 10].
Les points sont créés par l'instruction :
NOM=POINT(x,y,z)
où x, y et z sont les coordonnées du point.
L'affichage d'un point se réduit à son nom. Pour faire apparaitre si nécessaire une petite croix à l'emplacement du point, il faut utiliser l'instruction MARQUER décrite plus bas.

Les segments et les droites

Les segments sont créés par l'instruction :
NOM=SEGMENT(P1,P2)
où P1 et P2 sont les points extrémités du segment.

Les droites sont créés par l'instruction :
NOM=DROITE(P1,P2)
où P1 et P2 sont deux points définissant la droite.

Les faces et les plans

Les faces sont des polygones qui ont la propriété de masquer les objets qui se trouvent derrière. Elles sont créées par l'instruction :
NOM=FACE(P1,P2,P3,....Pn)
où P1, P2, P3, .... Pn sont les sommets du polygone. Ces sommets doivent être coplanaires.

Les plans sont créés par l'instruction :
NOM=PLAN(P1,P2,P3)
où P1, P2 et P3 sont trois points non alignés définissant le plan. Les plans ne sont pas dessinés et sont transparents.

Les objets construits

Les objets construits dépendent d'objets préalablement créés.

On peut ainsi créer un point sur un segment ou une droite avec l'instruction :
NOM=POINTSUR(S,x)
où S est le segment ou la droite et x un nombre qui définit la place du point;
si S a été défini par deux points A et B, le point créé vérifie vec(AM)=x.vec(AB). Dans le cas où S est un segment, le point peut se trouver en dehors.

On peut de même créer un point sur une face ou dans un plan avec l'instruction :
NOM=POINTSUR(F,x,y)
où F est la face ou le plan et où x et y sont des nombres qui définissent la position du point;
si F a été défini par les points P1, P2,...., Pn, le point créé vérifie vec(P1M)=x.vec(P1P2)+y.vec(P1Pn). Dans le cas où F est une face, le point peut se trouver en dehors.

L' intersection de deux droites ou segments, ainsi que l'intersection d'une droite ou d'un segment avec une face ou un plan, est un point obtenu avec l'instruction :
NOM=INTERSECTION(obj1,obj2)
où obj1 et obj2 sont les objets dont on cherche l'intersection.
Si l'intersection n'existe pas, ou si elle n'est pas réduite à un point comme avec deux droites confondues, un point invalide et invisible est toutefois créé.

La parallèle à une droite ou un segment passant par un point donné peut être créée par l'instruction :
NOM=PARALLELE(D,P)
où D est le segment ou la droite et où P est le point.
Si D est définie par deux points A et B, sa parallèle sera définie par le point P et son image par la translation de vecteur vec(AB).

Les solides prédéfinis

Il est possible de définir tout polyèdre en créant ses sommets, puis les faces qui le composent. Certains polyèdres peuvent cependant être créés en une seule instruction.

Un cube peut être obtenu avec l'instruction :
NOM=CUBE(x)
où NOM est une suite de 8 lettres qui seront les noms des sommets du cube et où x est un nombre qui détermine leurs coordonnées.

De même on peut obtenir des pyramides extraites d'un cube avec l'instruction :
NOM=COINCUBE(x)
où NOM est une suite de lettres qui seront les noms des sommets et où x détermine leurs coordonnées. Si NOM contient 4 lettres, la base sera un demi carré, si NOM contient 5 lettres, la base sera un carré.

On obtient un pavé droit avec l'instruction :
NOM=PAVE(l,p,h)
où NOM est une suite de 8 lettres qui seront les noms des sommets et où l, p et h déterminent largeur, profondeur et hauteur du pavé droit.

On obtient un tétrèdre régulier avec l'instruction :
NOM=TETRAEDRE(x)
où NOM est une suite de 4 lettres qui seront les noms des sommets et où x détermine leurs coordonnées.

On obtient un octaèdre régulier avec l'instruction :
NOM=OCTAEDRE(x)
où NOM est une suite de 6 lettres qui seront les noms des sommets et où x détermine leurs coordonnées.

On obtient une pyramide régulière avec l'instruction :
NOM=PYRAMIDE(r,h)
où NOM est une suite de lettres qui seront les noms des sommets, la première étant le sommet de la pyramide, et où r et h sont le rayon de la base et la hauteur.

On obtient un prisme droit à base régulière avec l'instruction :
NOM=PRISME(r,h)
où NOM est une suite de lettres qui seront les noms des sommets, et où r et h sont le rayon des bases et la hauteur.

Autres instructions

Les instructions qui suivent servent uniquement à donner des directives concernant l'affichage de la figure.

Pour ne pas afficher certains objets, on utilise :
CACHER(obj1,obj2,...)
où obj1, obj2, ..... sont les objets à cacher.

Pour marquer certains points, c'est à dire dessiner une petite croix à leur emplacement, on utilise :
MARQUER(P1,P2,...)
où P1, P2, .... sont les points à marquer.