C'est un complément au précédent article :
http://pstricks.blogspot.fr/2015/02/tore-decoupe-en-cercles-de-villarceau.html
Comment distinguer un cercle :
ou obtenir un ensemble de cercles bicolore :
\documentclass{article}
\usepackage[latin1]{inputenc}%
\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{pst-solides3d}
% Manuel Luque
% manuel.luque27@gmail.com
\title{Tore découpé en cercles de Villarceau -2}
\date{8 février 2015}
\begin{document}
\maketitle
\[
\left\{
\begin{array}[m]{l}
x=\sqrt{R^2-r^2}\sin(t)\sin\theta+\big(R+r\cos(t)\big)\cos\theta\\[1em]
y=\sqrt{R^2-r^2}\sin(t)\cos\theta-\big(R+r\cos(t)\big)\sin\theta\\[1em]
z=R\sin(t)
\end{array}
\right.
\]
%\newpage
\begin{center}
\psset{unit=0.75}
% Cercles de Villarceau dans un sens
\begin{pspicture}(-6,-6)(6,6)
%\psframe*[linecolor=black](-6,-6)(6,6)
\psframe(-6,-6)(6,6)
\psset[pst-solides3d]{viewpoint=50 0 30 rtp2xyz,Decran=50,lightsrc=1000 0 10 rtp2xyz}
\psset{solidmemory}
\codejps{
/RayonMajeur 3.5 def /rayonmineur 1.5 def
/TOREVILLARCEAU{
/biface false def
0 360 0 360 [60 60]
{/y exch def
/x exch def pop pop
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y sin mul rayonmineur RayonMajeur x cos mul add y cos mul add % y
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y cos mul rayonmineur RayonMajeur x cos mul add y sin mul sub % x
rayonmineur x sin mul % z
}
false % true
newsurfaceparametree
} def
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
/FACES {0 2 faces1 length 2 sub {/i exch def
faces1 i get} for
} def
}%
\psSolid[object=new,sommets=SOMMETS,faces=FACES,hollow,fillcolor=cyan,incolor=gray!50,grid,lightintensity=5]
\end{pspicture}
% Cercles de Villarceau dans l'autre sens
\begin{pspicture}(-6,-6)(6,6)
\psframe*[linecolor=black](-6,-6)(6,6)
\psset[pst-solides3d]{viewpoint=50 0 30 rtp2xyz,Decran=50,lightsrc=1000 0 10 rtp2xyz}
\psset{solidmemory}
\codejps{
/RayonMajeur 3.5 def /rayonmineur 1.5 def
/TOREVILLARCEAU{
/biface false def
0 360 0 360 [60 60]
{/y exch def
/x exch def pop pop
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y sin mul rayonmineur RayonMajeur x cos mul add y cos mul add % y
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y cos mul rayonmineur RayonMajeur x cos mul add y sin mul sub neg % x
rayonmineur x sin mul % z
}
false % true
newsurfaceparametree
} def
%(toreV3636) writesolidfile
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
/FACES {0 2 faces1 length 2 sub {/i exch def
faces1 i get} for
} def
}%
\psSolid[object=new,sommets=SOMMETS,faces=FACES,hollow,incolor=red,fillcolor=white,grid]
\end{pspicture}
\end{center}
\newpage
\begin{center}
\begin{pspicture}(-6,-6)(6,6)
\psframe*[linecolor=black](-6,-6)(6,6)
\psset[pst-solides3d]{viewpoint=50 0 30 rtp2xyz,Decran=50,lightsrc=1000 0 10 rtp2xyz}
\psset{solidmemory}
\codejps{
/n1 60 def /n2 60 def
/RayonMajeur 3.5 def /rayonmineur 1.5 def
/TOREVILLARCEAU{
/biface false def
0 360 0 360 [n1 n2]
{/y exch def
/x exch def pop pop
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y sin mul rayonmineur RayonMajeur x cos mul add y cos mul add % y
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y cos mul rayonmineur RayonMajeur x cos mul add y sin mul sub % x
rayonmineur x sin mul % z
}
false % true
newsurfaceparametree
} def
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
/FACES {0 2 faces1 length 2 sub {/i exch def
faces1 i get} for
} def
}%
\psSolid[object=new,sommets=SOMMETS,faces=FACES,
hollow,fillcolor=red,incolor=white,grid,
fcol=0 n1 2 div cvi n1 n2 mul 2 div cvi 1 sub {(blue)}for]
\end{pspicture}
\end{center}
\newpage
\begin{center}
\begin{pspicture}(-6,-6)(6,6)
\psframe*[linecolor=black](-6,-6)(6,6)
\psset[pst-solides3d]{viewpoint=50 0 30 rtp2xyz,Decran=50,lightsrc=1000 0 10 rtp2xyz}
\psset{solidmemory}
\codejps{
/n1 60 def /n2 60 def
/RayonMajeur 3.5 def /rayonmineur 1.5 def
/TOREVILLARCEAU{
/biface false def
0 360 0 360 [n1 n2]
{/y exch def
/x exch def pop pop
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y sin mul rayonmineur RayonMajeur x cos mul add y cos mul add % y
RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y cos mul rayonmineur RayonMajeur x cos mul add y sin mul sub % x
rayonmineur x sin mul % z
}
false % true
newsurfaceparametree
} def
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
/FACES {0 2 faces1 length 2 sub {/i exch def
faces1 i get} for
} def
}%
\psSolid[object=new,sommets=SOMMETS,faces=FACES,
hollow,
% fillcolor=red,
incolor=white,
grid,
fcol=0 1 n2 2 div cvi{/iC exch def
iC n1 2 div cvi n1 n2 mul 2 div cvi iC add 1 sub {dup 2 mod 0 eq{(blue)}{(red)}ifelse}for}for]
\end{pspicture}
\end{center}
\end{document}
Aucun commentaire:
Enregistrer un commentaire