mercredi 7 septembre 2011

Construction de Huygens du rayon réfracté

C'est une commande qui s'utilise ainsi :

\Huygens{1.5}{60} % {indice}{angle d'incidence}

Elle a été mise au point avec Juergen Gilg. Voici le résultat de la macro ci-dessus :


En modifiant les paramètres :  

\Huygens{1.33}{45}


Le code :

\documentclass[12pts]{article}
\usepackage{pstricks,pst-node}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,left=1.5cm,right=1.5cm]{geometry}
\SpecialCoor

\newcommand{\Huygens}[2]{
% #1  indice
% #2  angle d'incidence
\psset{unit=5}
\begin{pspicture}*(-1.5,-1.2)(1.5,1.2)
\pstVerb{% les dimensions
/arcsin { % JP Vignault
   dup 1 eq {
      90
   } {
      dup
      dup mul neg 1 add sqrt
      atan
      dup 90 lt
         {}
         {360 sub}
      ifelse
   } ifelse
} def
    /iN #1 def % indice du milieu réfractant
    /R1 1 def
    /R2 1 iN div def
    /i1 #2 def
    /i2 i1 sin iN div arcsin def
% les points pour la construction
    /xA R1 i1 sin div def
    /yA 0 def
    /xB R2 i2 sin mul def
    /yB R2 i2 cos mul neg def
    /xC R1 i1 sin mul def
    /yC R1 i1 cos mul neg  def
    /IE xA i1 cos mul def
    /xE IE i1 cos mul def
    /yE IE i1 sin mul def
% le rayon des ondelettes
    /Rx {neg xA add i2 sin mul} def
    }%
\psframe*[linecolor=cyan!20](-1.5,-1.2)(1.5,0)
\psline(-1.5,0)(1.5,0)
\psarc[linestyle=dashed](0,0){!R1}{180}{360}
\psarc[linestyle=dashed](0,0){!R2}{180}{360}
\psline[linestyle=dotted](0,0.5)(0,-0.5)
\psarc[linestyle=dotted]{->}(0,0){0.25}{90}{!i1 90 add}
\uput{0.25}[!i1 2 div 90 add](0,0){$i_1$}
\psarc[linestyle=dotted]{->}(0,0){0.25}{270}{!i2 270 add}
\uput{0.25}[!i2 2 div 270 add](0,0){$i_2$}
\pnode(!xA yA){A}
\pnode(!xB yB){B}
\pnode(!xC yC){C}
\pnode(!xE yE){E}
\pnode(! i1 90 add dup cos 1.38 mul exch sin 1.38 mul){S}
\pnode(! i1 270 add dup cos R1 mul exch sin R1 mul){I1}
\pnode(! i2 270 add dup cos R2 mul exch sin R2 mul){I2}
\psline[linecolor=red!80](S)(0,0)
\pcline[nodesepB=0.8,linewidth=2\pslinewidth,nodesepA=0.4,linecolor=red]{->}(S)(0,0)
\psline[linestyle=dashed](0,0)(I1)
\pcline[nodesepB=-0.5,linecolor=red!80](0,0)(I2)
\pcline[nodesepB=0.45,linewidth=2\pslinewidth,linecolor=red]{->}(0,0)(I2)
\pcline[linestyle=dashed](!R2 230 cos mul R2 230 sin mul)(0,0)
\naput[nrot=:U,npos=0.5,labelsep=0.01]{$r_2=\frac{1}{n_2}$}
\uput[230](!R2 230 cos mul R2 230 sin mul){$(\mathcal{C}_2)$}
\pcline[linestyle=dashed,nodesepB=-0.5](A)(I2)
\pcline[nodesepB=-0.5](A)(E)
\pcline[linestyle=dashed,nodesepB=-0.2](0,0)(E)
\pcline[nodesepB=-0.4,linestyle=dashed](I1)(A)
\pcline[linestyle=dashed](!R1 200 cos mul R1 200 sin mul)(0,0)
\naput[nrot=:U,npos=0.3,labelsep=0.01]{$r_1=\frac{1}{n_1}$}
\uput[230](!R1 200 cos mul R1 200 sin mul){$(\mathcal{C}_1)$}
\psdots[dotstyle=o](0,0)(I2)(I1)(A)(B)(C)(E)
\rput{!i1}(0,0){\psline(0.05,0)(0.05,0.05)(0,0.05)}
\rput{!i1}(I1){\psline(0.05,0)(0.05,0.05)(0,0.05)}
\rput{!i2}(I2){\psline(0.05,0)(0.05,0.05)(0,0.05)}
\rput(-1.2,0.1){(1)}
\rput(-1.2,-0.1){$n_2>n_1$}
\rput(-1.2,-0.2){(2)}
\uput{0.05}[!i1 2 div](0,0){$I$}
\uput[r](I1){$I_1$}
\uput[r](I2){$I_2$}
\uput[u](A){$A$}
\end{pspicture}}

\begin{document}
\begin{center}
\Huygens{1.5}{60} % {indice}{angle d'incidence}
\end{center}
\begin{enumerate}
\item On dessine les demi-cercles $(\mathcal{C}_1)$ et $(\mathcal{C}_2)$ de centre $I$ et de rayons respectifs $r_1=\frac{1}{n_1}$ et $r_2=\frac{1}{n_2}$.
\item On trace le prolongement du rayon incident qui coupe $(\mathcal{C}_1)$ en $I_1$.
\item On construit la tangente au cercle $(\mathcal{C}_1)$ en $I_1$ qui coupe le plan d'incidence en $A$ ;
\item Du point $A$ on mène la tangente au cercle $(\mathcal{C}_2)$. Le point de contact $I_2$ permet de tracer le rayon réfracté $II_2$.
\end{enumerate}
\newpage
\begin{center}
\Huygens{1.33}{45}
\end{center}
\end{document}
 

On peut le télécharger ici :  Huygens

Aucun commentaire:

Enregistrer un commentaire