dimanche 8 février 2015

Cercles de Villarceau sur un tore - suite 2

\documentclass{article}
\usepackage[latin1]{inputenc}%
\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{pst-solides3d}
% Manuel Luque
% manuel.luque27@gmail.com
\definecolor{chocolat}{rgb}{0.353 0.227 0.133}
\title{Cercles de Villarceau sur un tore -3}
\date{8 février 2015}
\begin{document}
\maketitle
\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=20 0 40 rtp2xyz,Decran=20,lightsrc=100 0 10 rtp2xyz}
\psset{solidmemory}
\codejps{
/chocolat {0.353 0.227 0.133 setrgbcolor} def
/n1 72 def /n2 72 def /n1n2 n1 n2 mul def
/RayonMajeur 3 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 % x
         RayonMajeur dup mul rayonmineur dup mul sub sqrt x sin mul y cos mul rayonmineur RayonMajeur x cos mul add y sin mul sub % y
         rayonmineur x sin mul % z
          }
  false % true
  newsurfaceparametree
  } def
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
 }%
\psSolid[object=new,sommets=SOMMETS,faces=faces1 aload pop,
         fillcolor=chocolat,incolor=gray!50,grid,
         linewidth=0.0001,
         fcol= 0 2 n1n2 2 div cvi 2 sub{/Rang exch def
        Rang (Red) Rang 1 add (Yellow)}for
]
\end{pspicture}

% Cercles de Villarceau dans l'autre sens

\begin{pspicture}(-6,-6)(6,6)
\psframe(-6,-6)(6,6)
\psset[pst-solides3d]{viewpoint=20 0 40 rtp2xyz,Decran=20,lightsrc=viewpoint}
\psset{solidmemory}
\codejps{
/n1 72 def /n2 72 def /n1n2 n1 n2 mul def
/RayonMajeur 3 def /rayonmineur 1.5 def
/TOREVILLARCEAU{
/biface false def
360 0 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 % x
         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 % y
         rayonmineur x sin mul % z
          }
  false % true
  newsurfaceparametree
  } def
/SOMMETS {TOREVILLARCEAU solidgetsommets aload pop} def
/faces1 {TOREVILLARCEAU solidgetfaces} def
 }%
\psSolid[object=new,sommets=SOMMETS,faces=faces1 aload pop,
         fillcolor=cyan,incolor=gray!50,grid,
         linewidth=0.0001,
         fcol= 0 2 n1n2 2 sub{/Rang exch def
        Rang (Red) Rang 1 add (Yellow)}for
]
\end{pspicture}
\end{center}
\end{document}


Aucun commentaire:

Enregistrer un commentaire