Retour

version-0_16.tex

Télécharger le fichier Fichier PDF
\input /home/jp/tex_doc/format/myplain.tex
%\magnification 1200
\def \listingpath {%
   /var/www/syracuse/texpng/jpv/guide_jps/}
\def \epspath {%
   /var/www/syracuse/texpng/jpv/guide_jps/}
\input \listingpath macros-doc.tex
 
\long \def \catalogue#1#2{%
$$
   \vcenter {\hsize .45 \hsize 
      $$\boxepsillustrate {#1}$$
   }
   \hfill
   \vcenter {\hsize .55 \hsize #2}
$$
}
 
\titre {jps2ps~: version 0.16}
 
\centerline {{\sl par Jean-Paul Vignault}}
 
\centerline {{\sl Groupe des Utilisateurs de
Linux Poitevins (GULP)}}
 
\centerline {(|jpv@melusine.eu.org|)}
 
\centerline {\today }
\vskip \titreskip
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%        debut du manuel
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input \listingpath macros_compl-doc.tex
\pageno -1
\egroup
\pageno 1
 
Ce document présente les différences entre la version $0.16$ et la précédente.
 
\paragraphe {Divers}
 
\syntaxe
 
\longref
   {$array_1$}
   {doublebubblesort}
   {$array_2$ $array_3$}
   {$array_3$ est obtenu en triant $array_1$ par ordre croissant et
   $array_2$ correspond à la position des indices de départ dans le
   tableau d'arrivé, ie si $array_1 = [13, 12, 14, 11]$, alors
   $array_2 = [3, 1, 0, 2]$} 
 
\longref
   {$u$}
   {normalize}
   {$v$}
   {$v$ est le vecteur de norme 1 obtenu à partir de $u$, ie. $\vec v
   = {1\over \Vert u\Vert }\vec u$} 
 
\endsyntaxe
 
\paragraphe {Solides}
 
\sparagraphe {Solides non convexes}
 
Pour le tracé des solides non convexes, on utilise {\sl l'algorithme
du peintre\/} qui consiste à représenter les faces du solide en
commaneçant par les plus éloignées de l'observateur. Ce tracé est
obtenu par la commande |drawsolid**|. Dans ce cas, il n'y a pas de
tracé des arêtes cachées.
 
\syntaxe
 
\longref
   {$solid$}
   {drawsolid**}
   {$-$}
   {affiche le solide $solid$ en utilisant l'algorithme du peintre}
 
\endsyntaxe
 
\sparagraphe {Modes de résolution}
 
Pour la plupart des solides, un {\sl mode de résolution\/} est
proposé, afin de gérer la finesse du maillage. Ce procédé permet de
préparer ses dessins en basse résolution, pour ne passer en haute
résolution (plus onéreuse en termes de temps de calculs) qu'au moment
final de la production. Pour chacun des solides concernés, $5$~modes
sont proposés, numérotés de $0$ à $4$. Le niveau $0$ correspond à la
résolution la plus faible. Si aucun mode n'est demandé, on utilise le
mode de résolution par défaut.
 
Le numéro de mode est transmis, optionnellement, par un exécutable
contenant l'indice choisi. Par exemple 
$$
   \hbox {|0 3 2 {0} newcylindre|}
$$
génére un cylindre avec le mode de résolution $0$. 
 
On peut également créer son propre mode. Pour cela on passe en
paramètre une chaîne de caractères contenant les valeurs
souhaitées. Ainsi 
$$
   \hbox {|0 3 2 (10 36) newcylindre|}
$$
génére un cylindre avec un maillage défini par $36$~points sur la
circonférence, et $10$~étages (soit $11$~points) sur la hauteur.
 
\sparagraphe {\' Eclairage par une source lumineuse ponctuelle}
 
La source lumineuse est définie par sa position $lightsrc$, sa couleur
$lightcolor$ et son intensité $lightintensity$. On modifie ces
paramètres en utilisant les commandes |setlightsrc|, |setlight| et
|setlightintensity|. Seule $lightintensity$ est définie par défaut. Si
$lightsrc$ n'est pas définie, alors le solide est colorié avec des
teintes uniformes. Si $lightsrc$ est défini mais pas $lightcolor$,
alors on considère que la lumière est blanche, et l'intensité de la
teinte de chaque facette dépend de l'orientation par rapport à
$lightsrc$. Enfin, si en plus la variable $lightcolor$ est définie,
alors les solides sont considérés blanc et la teinte de
chaque facette dépend de l'orientation de la source lumineuse et de sa
couleur. 
 
Par exemple, voici un cube tricolore 
\exempledble {solide_light_02} {.4}{.5} 
 
\sparagraphe {Solides précalculés}
 
Quelques nouveaux solides font leur apparition~: le tronc de cône
creux, le cylindre creux, le cône creux et le tore.
 
$$
   \boxepsillustrate {solide_04.ps}
$$
 
\syntaxe
\longref
   {$r$ $R$ $option$}
   {newtore}
   {$solid$}
   {crée un nouveau tore, de type $solid$, de centre $O$, de rayon
   principal $R$, et de rayon du tube $r$}
 
\longref
   {$z_0$ $z_1$ $r_1$ $option$}
   {newcylindrecreux}
   {$solid$}
   {crée un nouveau cylindre creux, de type $solid$, d'axe $Oz$, de rayon
   $r$, allant du plan $z = z_0$ jusqu'au plan $z = z_1$}
 
\longref
   {$z_0$ $r$ $z_1$}
   {newcone}
   {$solid$}
   {crée un nouveau cône, de type $solid$, d'axe $Oz$, de rayon
   $r$, allant du plan $z = z_0$ jusqu'au plan $z = z_1$}
 
\longref
   {$z_0$ $r_0$ $z_1$ $r_1$ $option$}
   {newtroncconecreux}
   {$solid$}
   {crée un nouveau tronc de cône creux, de type $solid$, d'axe $Oz$, de
   rayon de base $r_0$ (sur le plan  $z = z_0$) et de rayon au sommet
   $r_1$ (sur le plan $z = z_1$)}
 
\endsyntaxe
 
 
\sparagraphe {Opérations sur les solides}
 
Quelques nouvelles opérations pour les solides~:
 
\syntaxe
 
\longref
   {$solid$}
   {videsolid}
   {$-$}
   {ajoute au solide $solid$ ses faces internes}
 
\longref
   {$solid$}
   {creusesolid}
   {$-$}
   {enlève les faces d'indice $0$ et $1$ du solide $solid$, puis
   ajoute toutes les faces internes}
 
\longref
   {$solid$ $i$}
   {solidrmface}
   {$-$}
   {enlève la face d'indice $i$ du solide $solid$}
 
\longref
   {$solid$ $string_0$ $string_1$}
   {inoutputcolors}
   {$-$}
   {affecte la couleur définie par $string_0$ aux faces internes du
   solide $solid$, et la couleur définie par $string_1$ aux faces
   externes} 
 
\longref
   {$solid$ $string$}
   {outputcolors}
   {$-$}
   {affecte la couleur définie par $string$ à toutes les faces du
   solide $solid$}
 
\endsyntaxe
 
\exempledble {solide_gen_05} {.3}{.6} 
 
Un cylindre ouvert~:
\exempledble {solide_gen_06} {.3}{.6} 
 
Une ouverture dans une sphère~:
\exempledble {solide_gen_07} {.3}{.6} 
 
Il est également possible de \og fusionner\fg \ deux solides pour n'en
obtenir qu'un. Ceci permet d'appliquer l'algorithme du peintre sur
l'ensemble. Par exemple~:
\exempledble {solide_fuz} {.4}{.5} 
 
\syntaxe
 
\longref
   {$solid_1$ $solid_2$}
   {solidfuz}
   {$solid$}
   {dépose sur la pile le solide obtenu à partir de la fusion des
   solides $solid_1$ et $solid_2$}
 
\endsyntaxe
 
\paragraphe {Divers}
 
\sparagraphe {Environnement picture}
 
\ssparagraphe {Le dynamomètre}
 
Un nouvel objet fait son apparition~: le dynamomètre,
offert par Lu\' \i s A. V. Ferreira.
 
\catalogue
{dynamometre.ps}
{Nom~: |dinamometro| \par
Points spéciaux~: \par
\item {--} |aiguille|~: centre de l'aiguille du dynamomètre
\item {--} |bb|~: comme son nom l'indique
\par
}
 
\ssparagraphe {Cartes à jouer}
 
Grâce aux fichier SVG de David Bellot
(|http://david.bellot.free.fr/svg-cards/|), l'environnement picture
s'enrichit de $54$~cartes et $14$~dos de cartes. Voici par exemple les
$13$~cartes de trèfle
$$
   \boxepsillustrate {cartes.ps}
$$
Le nom des objets~: |01-coeur|, |02-coeur|, \dots , |V-coeur|,
|D-coeur|, |R-coeur| pour la couleur {\sl c\oe ur}, et des noms
analogues pour trèfle, carreau et pique.
 
On dispose également de $14$~dos de cartes
$$
   \boxepsillustrate {cartes_dos.ps}
$$
dont les noms sont~: 
|carte_dos_01|,
|carte_dos_02|,
|carte_dos_03|,
|carte_dos_04|,
|carte_dos_05|,
|carte_dos_06|,
|carte_dos_07|,
|carte_dos_08|,
|carte_dos_09|,
|carte_dos_10|,
|carte_dos_11|,
|carte_dos_13|,
|carte_dos_14|,
|carte_dos_bleu|.
 
 
\sparagraphe {Commandes 3d}
 
Cinq macros pour dessiner des triangles sphériques~:
 
\syntaxe
 
\longref
   {$r$ $\theta $ $\phi$}
   {rtp2xyz}
   {$x$ $y$ $z$}
   {Passage des coordonnées sphériques vers les coordonnées
   cartésiennes}
 
\longref
   {$r$ $\theta _1$ $\phi _1$ $r$ $\theta _2$ $\phi _2$}
   {arcspherique}
   {$-$}
   {trace l'arc de cercle entre les points $A$ et $B$ de
   coordonnées respectives $(r, \theta _1, \phi _1)$ et $(r, \theta
   _2, \phi _2)$} 
 
\longref
   {$r$ $\theta _1$ $\phi _1$ $r$ $\theta _2$ $\phi _2$}
   {geodesique\_sphere}
   {$-$}
   {trace le cercle passant par les points $A$ et $B$ de
   coordonnées respectives $(r, \theta _1, \phi _1)$ et $(r, \theta
   _2, \phi _2)$} 
 
\longref
   {$A$ $B$ $C$}
   {trianglespherique}
   {$-$}
   {trace le triangle sphérique $ABC$, où les points $A$, $B$ et
   et $C$ sont donnés par leurs coordonnées sphériques respectives
   $(r, \theta _1, \phi _1)$, $(r, \theta _2, \phi _2)$ et $(r, \theta
   _3, \phi _3)$}  
 
\longref
   {$A$ $B$ $C$}
   {trianglespherique*}
   {$-$}
   {version étoilée de |trianglespherique|}  
 
 
 
\endsyntaxe
 
 
\bye