Pour illustrer les propriétés des lentilles convergentes et
divergentes, voilà une illustration, réalisée
avec le package pst-lens que nous avions réalisé en
commun avec Denis Girou et dont il avait assuré une magistrale
et magnifique documentation.
Avec PSTricks et pst-node, on peut calculer et tracer la
marche de rayons lumineux à travers des lentilles ou se
réfléchissant sur des miroirs. Voici juste un échantillon
avec son fichier source.
En essayant de mettre au point cette extension à PSTricks qui
s'appuie sur pst-node je me suis posé beaucoup de questions
sur les choix qu'il convenait de faire.
Pour une lentille convergente(CVG) ou divergente(DVG) les calculs peuvent
être menés sans difficulté dans pst-node, qui
à partir des données de la position et de la taille de l'objet ainsi que
de la focale de la lentille donneront la taille et la position de l'image. On
peut donc récupérer la position OA' et la taille de l'image
A'B'.
Ensuite se posent les choix suivants :
faut-il en rester là, et laisser l'utilisateur tracer
lui-même l'objet, l'image, les rayons en les personnalisant comme il
l'entend ?
Pour dessiner les rayons fléchés j'ai mis au point une commande
\Arrows[...], mais elle n'est peut-être pas formulée de
la meilleure façon : on peut discuter de son contenu...
On peut aussi choisir de lancer la consrtruction totale par une simple
commande. Reste le choix des paramètres : les couleurs,
l'épaisseur des traits etc. S'il y a trop de paramètres il faudra
avoir constamment sous les yeux la documentation et finalement je ne sais pas
si le gain de temps sera significatif ?
Il faut aussi paramètrer le diamètre des lentilles,
étudier un système formé de deux lentilles etc.
Voici une ébauche de cette future extension, qui pour une
lentille CVG trace toute la construction avec trois rayons, mais les
paramètres éventuellement incorrects ne sont pas
vérifés.
On peut choisir de représenter la lentille mince de deux façons : par défaut
c'est la représentation classique qui est activée, avec le paramètre
CVG=true c'est une lentille mince à faces bombées qui est dessinée.
La taille de la lentille est paramétrable avec scaleCVG=x. Par défaut
scaleCVG=1, cela donne une lentille de rayon 2,5 cm.
Si l'option drawing=false est activée, seuls la lentille et les foyers sont
placés. Il faut donc dessiner tout le reste. Mais comme les points essentiels
sont référencés : (A), (B), (O), (A'), (B'), (F),
(F'), (I), (I'), (I1) et (I2), on peut utiliser les commandes de tracé de ligne
: \psline et \pcline.
Les points I1 et I2 n'apparaissent ici que pour la construction, ils ont pour
coordonnées respectives I1(XPIC,A'B') et I2(-XPIC,A'B')
Voici les points référencés placés sur le
schéma.
Il peut être utile de prolonger
un segment de droite AB au-delà de l'une de ses extrémités,
d'une certaine longueur. La commande \psOutLine[length=...](A)(B)
permet de tracer un segment de longueur length cm à partir de B dans
le prolongement de AB. Par défaut cette longueur est de 1 cm.
\psOutLine[length=...](A)(B) a tous les attributs de \psline
c'est-à-dire qu'en particulier on peut la flécher, en ajoutant dans la liste
des paramètres arrows=->.
L'extrémité du tracé est référencé par (END). On peut donc, après utilisation de la commande, se
servir de ce point dans le tracé d'une ligne, comme par exemple avec \psline(A)(END).
Remarque :\psOutLine[...] peut sembler faire double emploi avec
la commande de pst-node\pcline[nodesepB=-4](A)(B) qui prolonge le segment AB de 4 cm au-delà de
B. Mais \pcline[nodesepB=-4](A)(B) trace le segment AB, tandis que
\psOutLine[length=4](A)(B)ne trace pas le segment AB, mais uniquement
son prolongement.
Voici un exemple où cette commande est utilisée (loupe).
Questions en suspens :
reste à traiter le cas où l'objet est virtuel et le cas des lentilles
divergentes, pour lesquelles les calculs sont les mêmes, mais il reste
à choisir :
le choix pour la construction activée par drawing=true.
Le cas plus usuel me semble être celui où l'objet est réel
(l'image est bien sûr virtuelle), c'est donc celui-ci qu'il faudrait
dessiner ?
Faut-il intégrer les deux types de lentilles dans une même
commande \Lens[...] ? Des problèmes vont apparaître si
les deux lentilles sont représentées ensemble : il faudra étiqueter
leurs points caractéristiques de façon différente !
24 juin 2001
Ce premier essai sur les lentilles divergentes est calqué sur les
lentilles convergentes : c'est le même module à ceci près que la focale par
défaut vaut focale=-3 et que CVG est devenu DVG. L'option drawing=true qui est
activé (par défaut) se place dans le cas d'un objet réel.
Le fichier qui contient les schémas suivants est : DVG1.tex
25 juin 2001
Revenons au lentilles convergentes, pour essayer de résoudre la question
suivante : comment construire le cheminement d'un faisceau lumineux issu d'un
point source (B) ?
Pour cela, il peut être aussi utile de tracer le prolongement d'un segment AB avant son début.
La commande \psBeforeLine[length=...](A)(B) permet de tracer
un segment de longueur length cm qui commencera avant A et dont l'extrémité
sera A.
L'origine du tracé est référencé par (START). On peut donc, après utilisation de la commande, se
servir de ce point dans le tracé d'une ligne, comme par exemple avec \psline(START)(A).
L'image illustrant tout ce qui vient d'être dit ainsi tout ce qui concerne les
lentilles convergentes est dans le fichier : CVG6.tex
\begin{pspicture}*(-7.5,-3)(7.5,3)
\rput(0,0){%
\CVG[scaleCVG=1.2,XO=-2]}
\pnode(! XO 1.5){B1}% les deux points choisis
\pnode(! XO 2.2){B2}% sur la lentille
\psOutLine[length=4](B1)(B')%pour prolonger au-delà de B' permet de définir
END%
\psBeforeLine[length=4](B')(B2)% permet de définir START
\pspolygon[style=rayuresJaunes,linestyle=none](B)(B1)(B')(END)(START)(B2)
\psline(B)(B1)(END)
\psline(B)(B2)(START)
\end{pspicture}
La même chose avec une lentille divergente :
DVG2.tex
\begin{center}
\begin{pspicture}*(-7.5,-3)(7.5,3)
\rput(0,0){%
\DVG[scaleDVG=1,DVG=true,XO=0,AB=2,OA=-4,focale=-6]}
\psOutLine[length=7](B')(I)%pour prolonger au-delà de B' permet de définir END
\psBeforeLine[length=7](I')(B')% permet de définir START
\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(END)(START)(I')
\psline(B)(I)(END)
\psline(B)(I')(START)
\end{pspicture}
\end{center}
Questions en suspens (2) :
système formé de deux lentilles.
La première des questions en suspens ayant été en partie
résolue, étudions le cas d'un système composé de
deux lentilles convergentes.
Si on applique successivement deux fois la même commande \CVG[...] en modifiant la position du centre
optique et la valeur de la focale pour la deuxième lentille, il faut effectuer un
transfert d'étiquette car l'image A' donnée par la lentille 1
devient l'objet pour la lentille 2 (ce qui n'est pas aussi simple qu'il n'y paraît, dans l'état actuel de l'instruction \CVG[...]). Supposons ceci résolu, il reste un gros inconvénient
à savoir que les points (A), (B), (O), (A'), (B'), (F),
(F'), (I), (I'), (I1) et
(I2) seront maintenant référencés pour la
deuxième lentille et on ne pourra plus s'en servir pour tout ce qui ce
concerne la lentille 1. Le remède consiste à référencer de nouveaux
points, très simplement, avec des instructions du genre : \pnode(A'){A'1} etc. pour pouvoir conserver les
dits points. Il faut faire cela, bien sûr, avant de lancer la commande
\CVG[...] une deuxième fois.
26 juin 2001
Voici des ébauches de solution.
\begin{center}
\begin{pspicture}*(-7.5,-3)(7.5,3)
\rput(0,0){\CVG[scaleCVG=0.6,XO=-4,focale=1,OA=-2]}
\Transform
\rput(0,0){\CVG[scaleCVG=1.2,XO=2,focale=2,CVGtwo=true]}
\end{pspicture}
\end{center}
La commande \Transform se charge de récupérer les points de la première
lentille, de les stocker dans les nuds (A1), (B1), (A'1), (B'1), (O1),
(F1),(F'1), (I11) et(I'1). Il faudra faire attention à ne pas nommer d'autres
nodes avec les noms cités.
Tous les rayons sont tracés correctement, mais les mêmes lettres se répètent et
ne sont pas toujours bien placés...d'où une grande confusion.
Si on veut éviter cette grande confusion, il faut pouvoir choisir les
étiquettes des points représentés, d'où l'introduction des options :
nameA=... pour A,
nameB=... pour B, nameF=...
pour F, nameA'=... pour A',
nameB'=... pour B',
nameF'=... pour F' et nameO=... pour
O. Il faut de plus pouvoir choisir l'endroit où on les écrit autour du point, avec les options :
spotA=... etc.
\begin{center}
\begin{pspicture}*(-7.5,-3)(7.5,3)
\rput(0,0){\CVG[scaleCVG=0.6,XO=-4,focale=1,OA=-1.8,%
nameF=F_1,%
nameA=A_1,nameB=B_1,%
nameFi=F'_1,nameAi={ },nameBi={},nameO=O_1]}
\Transform
\rput(0,0){\CVG[scaleCVG=1.2,XO=2,focale=2,CVGtwo=true,%
nameA=A'_1,spotA=90,nameB=B'_1,spotB=270,%
nameO=O_2,nameAi=A'_2,spotAi=270,%
nameBi=B'_2,spotBi=90,nameF=F_2,nameFi=F'_2]}
\end{pspicture}
\end{center}
Mais tout cela me paraît trop compliqué pour un résultat décevant : un ou deux
rayons vont au-delà de la lentille 2 etc. Ne vaut-il pas mieux faire soi-même la
construction, en utilisant l'option drawing=false, puisque tous les points
importants sont référencés pour les deux lentilles ? Pour la lentille 2 ce sont (A), (B) etc.
Les essais précédents sont dans le fichier : CVGTWO-2.tex
Étude d'exemples
Pouvons-nous avec cet ensemble de commandes, illustrer la plupart des
situations rencontrées dans les livres d'optique du secondaire ? Ou bien
faut-il en créer de nouvelles ?
Il faut d'abord être conscient d'une chose : ce n'est pas un programme
interactif qui s'adaptera automatiquement à toutes les situations ! Il
est nécessaire d'étudier le problème et d'avoir sous les
yeux ce qu'on cherche à représenter.
J'ai donc pris le livre de physique de 1S de Hachette (nouveau programme) et
les chapitres concernant les lentilles et les instruments d'optique.
Exemple 1
page 280 : exercice d'entraînement
Un objet AB transversal de longueur 5 mm est situé à 30 cm d'une
lentille convergente de distance focale 10 cm. A est situé sur l'axe.
Déterminer la position de l'image A'B'.
Déterminer la grandeur de l'image.
La première chose à faire est de mettre le dessin à
l'échelle :
Entre image et objet il y a une distance de 45 cm. Le cadre que j'utilise a une
largeur (paramétrable) de 15 cm, on prendra comme échelle 1/3 sur
l'axe horizontal.
L'objet a une hauteur de 5 mm, c'est trop petit, adoptons un coefficient
multiplicateur 4 pour l'axe vertical.
Calculons les valeurs des données avec les échelles
choisies :
AB = 2 cm
OA = -10 cm
focale = 3,333 cm
XO = 3 cm
On représentera aussi le faisceau issu de B qui englobe la lentille. Le
centre optique sera décalé de 2 cm vers la droite.
\begin{center}
\begin{pspicture}(-8.5,-3)(8.5,3)
\rput(0,0){\CVG[focale=3.333,OA=-10,AB=2,XO=2,XPIC=8.5]}
\pnode(!XO 2.5){L1}%extrémité supérieure de la lentille
\pnode(!XO -2.5){L2}%extrémité inférieure de la lentille
\psOutLine[length=2](L1)(B')
\psBeforeLine[length=2](B')(L2)
\pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END)(START)(L2)
\end{pspicture}
\end{center}
Utiliser une loupe, (numéro 26 page
287) toujours dans le livre de Hachette (extrait).
Une loupe est constituée d'une lentille convergente de 10 dioptries. Un
philatéliste souhaite observer des détails dont les dimensions sont de l'ordre
du 1/10 de mm.
Déterminer la position et la taille d'un objet de 0,1 mm situé sur l'axe
optique et perpendiculairement à celui-ci lorsque l'objet est situé à 7,0 cm du
centre optique de la lentille.
Un rapide calcul montre que l'image est située à OA' = -23 cm et que
A'B' = 0,32 mm. Il faut donc choisir les échelles suivantes :
échelle 0.4 horizontalement ;
échelle 50 verticalement.
S'agissant du cas où le tracé direct ne donne pas une représentation
satisfaisante, on va donc activer l'option drawing=false et dessiner
tous les rayons un par un comme dans l'exemple déjà
étudié .
On dessinera aussi l'il du philatéliste ainsi qu'un faisceau issu de B.
\begin{center}
\begin{pspicture}(-8,-3)(8,3)
\rput(0,0){\CVG[CVG=true,focale=4,AB=0.5,OA=-2.8,XO=2,drawing=false]}
%dessin du faisceau
\pnode(!XO 2.5){L1}%extrémité supérieure de la lentille
\pnode(!XO -2.5){L2}%extrémité inférieure de la lentille
\psOutLine[length=5.5,linestyle=none](B')(L1)
\psBeforeLine[length=6,linestyle=none](L2)(B')
\pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END)(START)(L2)
\psline[linewidth=1.5\pslinewidth,arrowinset=0]{->}(A)(B)
\uput[270](A){A}
\uput[90](B){B}
\psline[linewidth=1.5\pslinewidth,arrowinset=0,linestyle=dashed]{->}(A')(B')
\uput[270](A'){$\mathrm{A'}$}
\uput[90](B'){$\mathrm{B'}$}
\psset{linecolor=red,arrowsize=0.2}
\pcline[nodesepB=-4](B')(O)
\psline(B)(I)(F')
\psOutLine(I)(F')
\Arrows(I)(F')
\Arrows(B)(I)
\psOutLine[length=1,linestyle=dashed](I')(B')
\psline[linestyle=dashed](B)(F)
\psline(B)(I')
\Arrows[arrows=->>](B)(I')
\psline[linestyle=dashed](B')(I')
\psline[linestyle=dashed](B')(I)
\psOutLine[length=2,arrows=->>](B')(I')
\psOutLine[length=4](B')(I')
\rput(8,0){\psset{linecolor=black}\oeil}
\end{pspicture}
\end{center}
On peut penser qu'il serait plus joli de tracer les rayons en couleur. Il faut
donc introduire une nouvelle option dans la commande : rayColor=red, par
exemple.
Exemple 3 :
Étude d'une lunette astronomique.
L'observation d'un objet infiniment éloigné entraîne le tracé de rayons
parallèles entre eux. Il est nécessaire de disposer d'une commande permettant
de tracer un rayon passant par un point donné, de longueur donnée et paralléle
à un rayon de référence. Cette commande qui s'écrit
\Parallel[length=...](A)(B)(C){nom} permet de tracer un rayon passant par
(C),
parallèle à AB et de longueur length cm (cette valeur pouvant être
positive ou négative), par défaut, nous le savons déjà length =
2cm, le point correspondant à
cette extrémité doit être référencé avec le nom choisi.
\begin{center}
\begin{pspicture}(-4,-3)(4,3)
\psgrid
\pnode(-4,-3){A}
\qdisk(A){1.5pt}
\uput[225](A){\blue A}
\pnode(4,3){B}
\qdisk(B){1.5pt}
\uput[45](B){\blue B}
\pnode(2,0){C}
\qdisk(C){1.5pt}
\uput[135](C){\red C}
\psline[linecolor=blue](A)(B)
\Parallel[linecolor=red,arrows=->,arrowsize=0.2](A)(B)(C){P1}
\qdisk(P1){1.5pt}
\uput[90](P1){\red P1}
\end{pspicture}
\end{center}
Ce qui est illustré par l'image suivante, dont voici le fichier source :
Parallel.tex
Autre problème à solutionner : l'intersection d'un rayon avec une lentille.
Grace à la commande \RayInterLens(A)(B){XO2}{nom} on détermine le point
intersection de la droite AB avec la lentille positionnée au point d'abscisse
XO2.
\begin{center}
\begin{pspicture}(-8,-3)(8,3)
%on place l'oculaire dès le début
\rput(0,0){\CVG[scaleCVG=0.6,drawing=false,focale=1.5,OA=-1,XO=5,nameF={},nameFi={},AB=-1]}
%image intermédiaire A1B1 au foyer F'1
\psline{->}(4,0)(4,-1)
%lentille 2
\psline[linewidth=2\pslinewidth,linecolor=blue]{<->}(5,1.5)(5,-1.5)
%On place les points essentiels
\pnode(-6,0){O1}
\pnode(-6,2.5){E1L1}%extrémité sup de L1
\pnode(-6,-2.5){E2L1}%extrémité inf de L1
\pnode(4,0){A1}
\pnode(4,-1){B1}
%intersection de O1 avec la lentille L2
\RayInterLens(O1)(B1){5}{Inter1L2}
%rayon venant de l'infini jusqu'à la lentille L2
\pcline[nodesepB=-2](Inter1L2)(O1)
%rayon parallèle au précédent et passant par E1L1
\Parallel(B1)(O1)(E1L1){B1infty}
%rayon parallèle au précédent et passant par E2L2
\Parallel(B1)(O1)(E2L1){B2infty}
%intersection de la droite passant par E1L1 et B1 avec la lentille L2
\RayInterLens(E1L1)(B1){5}{InterE1B1L2}
\psline(E1L1)(InterE1B1L2)
%intersection de la droite passant par E2L2 et B1 avec la lentille L2
\RayInterLens(E2L1)(B1){5}{InterE2B1L2}
\psline(E2L1)(InterE2B1L2)
\psline[linestyle=dashed]{->}(A')(B')
\psline[linestyle=dashed]{->}(InterE1B1L2)(B')
\psline[linestyle=dashed]{->}(InterE2B1L2)(B')
\psline[linestyle=dotted](B')(O)
\psOutLine[length=3](B')(InterE1B1L2)
\psBeforeLine[length=3](InterE2B1L2)(B')
\pspolygon[style=rayuresJaunes,linestyle=none](B1infty)(E1L1)(InterE1B1L2)(END)(START)(InterE2B1L2)(E2L1)(B2infty)
\uput[90](A'){$\mathrm{A'}$}
\uput[270](B'){$\mathrm{B'}$}
\uput[90](A1){$\mathrm{A_1}$}
\uput[270](B1){$\mathrm{B_1}$}
\uput[225](O1){O1}
\uput[45](O){O2}
\uput[90](F){$\mathrm{F_2}$}
\uput{0.4}[150](F'){$\mathrm{F'_2}$}
\uput{0.6}[90](A1){$\mathrm{F'_1}$}
\psline[linecolor=red](B1infty)(E1L1)(InterE1B1L2)(END)
\psline[linecolor=red](B2infty)(E2L1)(InterE2B1L2)(START)
\rput(8,0){\oeil}
%lentille 1
\psline[linewidth=2\pslinewidth,linecolor=blue]{<->}(-6,-2.5)(-6,2.5)
\end{pspicture}
\end{center}
Cet exemple montre que tout est faisable... mais à quel prix me-direz-vous ?
Sans compter qu'il faut sans doute revoir les commandes \psOutline et
\psBeforeLine pour pouvoir attribuer une étiquette personnalisée aux
points concernés (END) et (START), dans le cas où ces commandes et les points
associés devraient servir plusieurs fois.
Ces commandes ont été modifiées. Elles s'utilisent
dorénavant ainsi :
La commande \psOutLine[length=...](A)(B{nom})
permet de tracer un segment de longueur length cm à partir de B dans
le prolongement de AB. Par défaut cette longueur est de 1 cm.
\psOutLine[length=...](A)(B){nom}
a tous les attributs de \psline
c'est-à-dire qu'en particulier on peut la flécher, en ajoutant dans la liste
des paramètres arrows=->. Cette extrémité est référencée par
(nom). Ce point, après utilisation de la commande, peut être utilisé
pour le tracé d'une droite \psline(A)(nom).
La lunette et les commandes précédentes sont illustrées par l'image suivante, en voici le fichier source :
lunette.tex et le fichier regroupant
l'ensemble de l'étude, mise à jour pour les lentilles convergentes : CVGTWO-6.tex
29 juin 2001
Quelques options supplémentaires pour le dessin de la
lentille
L'option [lenscolor=...] permet de choisir la couleur de la
lentille.
L'option [lenswidth=...] permet de choisir l'épaisseur du trait de la
lentille.
L'option [lensarrowsize=...] permet de choisir la taille des
flèches.
L'option [lensarrowinset=...] permet de choisir la longueur des
pointes des flèches.
Le fichier CVGTWO-6.tex contient toutes les
dernières modifications.
L'utilisation la plus simple, en donnant des couleurs à l'ensemble :
L'extension qui contient ce qui a l'air à peu près au point sur les lentilles convergentes,
est regroupé dans l'extension :
pst-cvg.tex et
pst-cvg.sty, que l'on peut
télécharger : pst-cvg.tex
et pst-cvg.sty. L'utilisation du package
s'effectuera comme dans l'exemple ci-dessus, pourvu les deux fichiers soient
placés dans le répertoire où l'on travaille, ou bien dans le
répertoire habituel des extensions (chez-moi
C:\texmf\tex\latex).
30 juin 2001
J'ai intégré l'ensemble : lentilles
convergentes et divergentes dans une extension pst-optic.tex et
pst-optic.sty, que l'on peut
télécharger : pst-optic.tex
et pst-optic.sty.
La documentation (provisoire) est ici : Doc-pst-optic.tex, elle reprend l'ensemble des exemples déjà
étudiés, mais mise à jour avec les nouvelles
dénominations des commandes et options, que je détaille
ci-dessous.
la commande principale s'écrit : \lens[...]
Ses options :
[lensType=CVG] et [lensType=DVG] permettent de spécifier le
type de lentille, c'est la lentille convergente qui est activée par
défaut.
[lensGlass=true] représente
la lentille de façon plus réealiste. Par défaut c'est le
symbole classique qui est dessiné.
[lensScale=...] permet de
paramétrer la taille de la la lentille.
[lensScale=1], donne une lentille de rayon 2,5 cm.
L'étude d'un système de deux lentilles s'active
maintenant avec l'option [LensTwo=true].
Le reste est sans changement.
Par exemple, pour représenter le cas d'une lentille divergente :
\documentclass[12pt]{article}
\usepackage{pst-optic}
\pagestyle{empty}
\begin{document}
\begin{center}
\lens[lensType=DVG,focale=-3,OA=-5,AB=2.4,XO=-5,lensGlass=true,%
rayColor=red,lenscolor=blue,lenswidth=3\pslinewidth,%
lensarrowsize=0.3,lensarrowinset=0.2,XO=-1,%
spotAi=270,spotBi=90,YPIC=4]
\end{center}
\end{document}
Pour paraphraser le titre du célèbre(?) ouvrage de Kepler sur l'optique : Paralipomènes à Vitellion, voici quelques compléments.
Tout d'abord, le cas d'un objet virtuel pour une lentille convergente :
\documentclass[12pt]{article}
%Mluque5130@aol.com
%1 Juillet 2001
\usepackage{pst-optic}
\pagestyle{empty}
\author{Manuel Luque}
\date{01 juillet 2001}
\begin{document}
\begin{center}
\begin{pspicture}(-7.5,-4)(7.5,4)
\rput(0,0){%
\lens[focale=5,OA=6.5,AB=2,XO=-2,lensGlass=true,%
rayColor=red,YPIC=4,drawing=false]
}
\pnode(!XO 2.5){L1}%extrémité de la lentille sup
\pnode(!XO -2.5){L2}%extrémité de la lentille inf
{\psset{linecolor=red,linestyle=dashed}
\psline(L1)(B)
\psline(L2)(B)}
{\psset{length=6,linestyle=none}
\psOutLine(B)(L1){A1}
\psOutLine(B)(L2){A4}
\psOutLine(L1)(B'){A2}
\psOutLine(L2)(B'){A3}
\pspolygon[style=rayuresJaunes](A1)(L1)(A2)(A3)(L2)(A4)
}
\psline[linestyle=dashed]{->}(A)(B)
\psline{->}(A')(B')
\uput[90](B){B}
\uput[90](B'){$\mathrm{B'}$}
\uput[270](A){A}
\uput[270](A'){$\mathrm{A'}$}
{\psset{linecolor=red}
\psline(A1)(L1)(A2)
\psline(A4)(L2)(A3)}
\end{pspicture}
\end{center}
\end{document}
Dans cet exemple, tout est paramètrable : la position des foyers et du
miroir secondaire, mais en l'état ce n'est pas évident : il faut
le reprendre pour le rendre plus simple à l'usage.
J'en ai profité pour introduire une nouvelle commande, qui ici
était indispensable : \ABinterCD(A)(B)(C)(D){nom} qui calcule le
point d'intersection des droites définies par (A)(B) et (C)(D) et leur attribue
le node (nom) (je n'ai pas testé le parallélisme !).
Le fichier pst-optic.tex a été modifié pour intégrer une
commande spéciale aux télescopes.
La commande particulière au télescope s'écrit : \telescope[...] et est
susceptible, pour l'instant de supporter deux options :
[focaleMiroir=8], 8 est la valeur par défaut ;
[positionMiroirSecondaire=6], 6 est la valeur par défaut.
Voici par exemple ce qu'on obtient en modifiant les paramètres par défaut.
\documentclass[12pt]{article}
%Mluque5130@aol.com
%2 Juillet 2001
\pagestyle{empty}
\usepackage{pst-optic}
\begin{document}
\telescope[focaleMiroir=10,positionMiroirSecondaire=8]
\end{document}
Il faut modifier ces paramètres avec précaution, sinon le
résultat obtenu risqued'être fantaisiste.
Les dernières versions (0.3) de pst-optic et de
Doc-pst-optic.tex qui reprend
l'ensemble des exemples de cette page mis à jour, sont ici :
pst-optic.sty et Doc-pst-optic.tex
Un télescope avec d'autres paramètres.
\documentclass[12pt]{article}
%Mluque5130@aol.com
%2 Juillet 2001
\pagestyle{empty}
\usepackage{pst-optic}
\begin{document}
\telescope[focaleMiroir=6,positionMiroirSecondaire=5]
\end{document}