On peut choisir le centre d’inversion pour que le grand cercle (C 1 ) et son image (C′ 1 ) aient le même rayon, mais le petit cercle (C 2 ) et son image (C′ 2 ) auront des rayons différents :
Quelques explications sont dans le fichier pdf :
L'animation dans ce fichier a été réalisée avec le package animate d'Alexander Grahn.
Cette page a été complétée et la documentation mise à jour :
Ci-dessous le code permettant d'obtenir les images pour réaliser le Gif animé ci-dessus :
\documentclass{article}
\usepackage[paperwidth=14cm,paperheight=6cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-plot}
\usepackage[garamond]{mathdesign}
\usepackage{amsmath}
\usepackage{animate}
\usepackage{url}
\psset{dimen=middle}
\title{Dessiner des guillochis entre 2 cercles non concentriques avec PSTricks}
\date{9 mars 2016}
\pagestyle{empty}
\author{Manuel Luque}
\begin{document}
\begin{center}
\multido{\r=0+2.5}{29}{%
\begin{pspicture}(-7,-3)(7,3)
\pstVerb{
/R1 2 def % choix du rayon du cercle externe
/R2 1 def
/xC1 2 R1 mul neg def % position du centre du cercle (C1)
/k_ xC1 dup mul R1 dup mul sub neg def
%%--determiner le rayon du cercle image--%%
%%----et les coordonnées du centre-------%%
%% x y R xyR ==> x' y' R'
/xyR {
10 dict begin
/R exch def % rayon du cercle à inverser
/y exch def % abscisse du centre de (C)
/x exch def % ordonnée du centre de (C)
/d x dup mul y dup mul add sqrt def % d(OC)
% puissance de O/C
/p d dup mul R dup mul sub def
/beta R d div arcsin def
% vecteur unitaire suivant OC
/ux x d div def
/uy y d div def
% pied de la polaire H
% /xH p sqrt beta cos mul ux mul def
% /yH p sqrt beta cos mul uy mul def
p sqrt beta cos mul ux mul % xH
p sqrt beta cos mul uy mul % yH
Inverse % ==> xC' et yC'
k_ p div R mul abs % ==> R'
end
} def
% formule d'inversion : calcul des coordonnées du point image
%% x y Inverse ==> x' y'
/Inverse {
3 dict begin
/y exch def
/x exch def
/d2 x dup mul y dup mul add def
k_ x mul d2 div % x'
k_ y mul d2 div % y'
end
}def
/CoorA {xC1 0 R1 xyR pop} def
/CoorB {xC1 0 R2 xyR pop} def
/RA xC1 0 R1 xyR exch pop exch pop def
/RB xC1 0 R2 xyR exch pop exch pop def
/2pi 6.283185 def
/a1 0 def
/a2 0 def
/p1 17 def
/q1 5 def
/xF1 {
R1 R2 add 2 div
R1 R2 sub 2 div
p1 t mul q1 div \r\space add cos mul
add
t cos mul
2 R1 mul sub
} def
/yF1 {
R1 R2 add 2 div
R1 R2 sub 2 div
p1 t mul q1 div \r\space add cos mul
add
t sin mul
} def
/tableauInverses {
0 1 360 q1 mul {/t exch def
xF1 yF1 Inverse
} for
} def
/decal {\r\space DegtoRad} def
}%
\psparametricplot[plotpoints=720,algebraic]{0}{2pi q1 mul}{((R1+R2)/2+(R1-R2)/2*cos(p1*t/q1+decal))*cos(t)-2*R1|((R1+R2)/2+(R1-R2)/2*cos(p1*t/q1+decal))*sin(t)}
\listplot[plotstyle=curve,linecolor=red]{tableauInverses}
% les 2 cercles initiaux et leurs images
\pscircle[linecolor=blue](!xC1 0){!R1}
\pscircle[linecolor=blue](!xC1 0){!R2}
\psdot(!xC1 0)
\psline(!CoorB pop -0.1 add 0)(!CoorB pop 0.1 add 0)
\psline(!CoorB pop -0.1 )(!CoorB pop 0.1)
% les inverses
\pscircle[linecolor=blue](!CoorA){!RA}
\pscircle[linecolor=blue](!CoorB){!RB}
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt]
\end{pspicture}\newpage}
\end{center}
\end{document}
Aucun commentaire:
Enregistrer un commentaire