# Initiation à BRL-CAD/Formes primitives

La création d'un solide se fait par l'instruction in, pour « insérer » (insert). Il faut donner un nom à chaque solide créé afin de pouvoir y faire référence par la suite. Le nom se termine par l'extension .s.
On peut entrer toutes les caractéristiques du solide dans la même ligne, mais MGED fournit une assistance : il demande au fur et à mesure les informations manquantes.
La syntaxe générale est :
    in nom.s type paramètres
Le nom « officiel » des solides élémentaires est primitive shape, « forme primitive ».

## Premier exemple

Par exemple, pour créer un cylindre (right circular cylinder, rcc) appelé « arbre » dont le centre de la base (vertex) a pour coordonnées (0 ; 0 ; 0), d'axe z, de hauteur 10 et de rayon 5, il faut taper
* la séquence 0 0 0 sont les coordonnées du centre de la base du cylindre ;
* la séquence 0 0 10 sont les composantes du vecteur hauteur ;
* la séquence 5 est le rayon.
On peut aussi se laisser guider par MGED :
L'objet s'affiche en fil de fer.
On peut afficher les repère avec le menu Modes | Axes de la fenêtre graphique :
* l'option View affiche le repère de base ;
* l'option Model affiche le repère lié au solide.
Si l'on clique sur la fenêtre graphique avec le bouton principal, on fait un rétrécissement (zoom arrière) ; si l'on clique avec le bouton secondaire, cela fait un agrandissement (zoom avant).
Si l'on appuie sur la touche Maj (shift) en cliquant sur l'image et en bougeant la souris, on fait bouger la vue que l'on a de l'objet, mais cela ne bouge pas l'objet par rapport au repère. Si l'on appuie sur la touche Ctrl (contrôle) en cliquant sur l'image et en bougeant la souris, on fait tourner l'image (on change de point de vue, mais l'objet ne change pas d'orientation par rapport au repère).
Si l'on veut afficher l'objet avec un effet de matière, il faut d'abord créer une « région » (region), puis lui attribuer une « matière » (mater), et enfin tracer l'objet par la méthode de lancer de rayon (ray tracing).
Par exemple, nous allons créer la région resarbre.r (pour « résultat de l'arbre ») à partir de la réunion (u, union) de l'objet arbre.s avec l'ensemble vide — c'est à dire que la région ne contient que l'objet arbre.s, et l'on utilise pour cela la commande r :
Puis, on veut lui donner un aspect mat (plastic) de couleur violette, en utilisant la couleur définit par le code rouge-vert-bleu 128 0 255 :
Le dernier 0 sera expliqué plus tard.
Le tracé par lancé de rayon (ray tracing, rt) pour générer un dessin de taille 512×512 pixels (size, -s) se fait par

## Principales commandes

La commande in permet donc de créer une forme primitive (solide élémentaire). La commande make permet de créer une forme primitive avec des paramètres par défaut, avec la syntaxe
    make nom.s type
par exemple, pour créer une sphère avec des paramètres par défaut :
La commande l (« L » minuscule) permet de lister les paramètres de l'objet. Sa syntaxe est
    l nom.s
par exemple
on voit que la sphère est en fait enregistrée comme une ellipsoïde — la sphère est d'ailleurs une ellipsoïde particulière.
On peut choisir une vue particulière :
* la commande center permet de définir le point placé au centre de la fenêtre ; il suffit d'indiquer les coordonnées de ce point séparés par un espace ;
* la commande ae (azimuth, élévation) permet de définir les angles du point de vue ; il suffit d'indiquer les angles de cette orientation séparés par un espace.
Par exemple
place le point (100 ; 0 ; -50) au centre de la fenêtre, et place la caméra selon l'orientation (25 ° ; 95 °), c'est-à-dire azimuth θ = 25 ° et élévation δ = 95 °. Les vues standard sont :
* vue de face : (0 ° ; 0 °) ;
* vue de gauche : (90 ° ; 0 °) ;
* vue de derrière : (180 ° ; 0 °) ;
* vue de droite : (270 ° ; 0 °) ou (−90 ° ; 0 °) ;
* vue de dessus : (0 ° ; 90 °) ;
* vue de dessous : (180 ° ; 270 °) ou (180 ° ; −90 °).

## Principales formes primitives

Types de solides :
| Instruction | Type | Mnémotechnique | Paramètres | Remarques |
| arbn (arb4, arb5, …) | polyèdre convexe quelconque à n face | Arbitrary Convex Polyhedron | n sommets (vertex) | si n < 8, le solide est enregistré comme arb8 |
| ell1 | ellipsoïde de révolution | | centre V (vertex), vecteur demi-grand axe, rayon | rayon : longueur d'un petit axe perpendiculaire au grand ; enregistré comme ell |
| half | demi-espace | Halfspace | vecteur normal au plan pointant vers l'extérieur, distance à l'origine |
| rcc | cylindre standard | Right Circular Cylinder | centre de la base V (vertex), vecteur hauteur H | enregistré comme tgc, les vecteurs demi-axes sont de même longueur et sont perpendiculaires au vecteur hauteur |
| rec | cylindre droit de section elliptique | Right Elliptical Cylinder | centre de la base V (vertex), vecteur hauteur, grand axe, petit axe | enregistré comme tgc |
| rpp | parallélépipède rectangle | Rectangular Parallelepiped | 8 sommets (vertex) | enregistré comme arb8 |
| sph | sphère | Sphere | centre (vertex), rayon | enregistré comme ell |
| tec | cône tronqué elliptique | Truncated Elliptical Cone | centre de la base V (vertex), vecteur hauteur H, vecteurs demi-axes de l'ellipse de base A et B, facteurs d'échelle pour l'autre face c et d | enregistré comme tgc |
| tor | tore | Torus | centre V (vertex), vecteur d'axe, rayon du cercle moyen de l'anneau, rayon de la section droite | |
| trc | cône tronqué circulaire | Truncated Right Cone | centre de la base V (vertex), vecteur hauteur H, rayon de la base r, facteurs d'échelle pour l'autre face | enregistré comme tgc |

## Voir aussi

* Annexe : Formes primitives

## Notes

* ↑ clic droit sur les souris configurées pour droitier
Création d'un projet < ↑ > Combinaison de solides