samedi 7 février 2015

Tore découpé en cercles de Villarceau






\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}
\date{7 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=green](-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=red,incolor=gray,grid]
\end{pspicture}

% Cercles de Villarceau dans l'autre sens
\begin{pspicture}(-6,-6)(6,6)
\psframe*[linecolor=yellow](-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
/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=gray,grid]
\end{pspicture}
\end{center}
\end{document}

Aucun commentaire:

Enregistrer un commentaire