mardi 7 avril 2015

Solides avec décor à pois de couleur

\documentclass{article}
\usepackage{pst-solides3d}
\definecolor{coquille}{rgb}{0.984 0.95 0.718}
\begin{document}
\begin{center}
\begin{pspicture}(-5,-4)(5,5)
\psframe(-5,-4)(5,5)
\pstVerb{/hauteur 5 def /rayon 2 def /angleT 50 def}%
\psset{viewpoint=15 angleT 30 rtp2xyz,Decran=12,lightsrc=viewpoint,solidmemory}
\psSolid[object=grille,base=-4 4 -4 4]%
\psSolid[object=cylindre,
        h=hauteur,r=rayon,grid,
        fillcolor=coquille,
        ngrid=10 50](0,0,0)
\psSolid[object=cylindre,
        h=hauteur,r=rayon,grid,
        fillcolor=coquille,
        ngrid=8 20,name=cylindrepois,action=none](0,0,0)
\codejps{
% projection sur la face n°i
% coordonnées du centre et rayon du cercle
1 1 cylindrepois solidnombrefaces 1 sub {/i exch def % numero de la face
cylindrepois i solidgetsommetsface /TAB exch def
TAB 0 3 getinterval aload pop % sommet n°0 x0 y0 z0
TAB 3 3 getinterval aload pop % sommet n°1 x1 y1 z1
distance3d /Rayon exch 2.65 div def % distance entre les 2 sommets /2.65
0 360 0 0 Rayon Cercle_ cylindrepois i projpath
i 2 modulo 0 eq {(red) cvx exec}{(blue) cvx exec}ifelse
fill
} for
}%
\psSolid[object=plan,definition=normalpoint,args={0 0 hauteur [0 0 1]},
         action=none,
         base=-4 4 -4 4,
         name=monplanH]
\psset{plan=monplanH}
\psProjection[object=cercle,linewidth=0.05,
              args=0 0 rayon]
\psSolid[object=plan,definition=normalpoint,args={0 0 0 [0 0 1]},
         action=none,
         base=-4 4 -4 4,
         name=monplanB]
\psset{plan=monplanB}
\psProjection[object=cercle,linewidth=0.05,
              args=0 0 rayon,range=-90 angleT add 90 angleT add]
\psPoint(angleT sin rayon mul,angleT cos rayon mul neg,0){A}
\psPoint(angleT sin rayon mul,angleT cos rayon mul neg,hauteur){B}
\psline[linewidth=0.05](A)(B)
\psPoint(angleT sin rayon mul neg,angleT cos rayon mul,0){C}
\psPoint(angleT sin rayon mul neg,angleT cos rayon mul,hauteur){D}
\psline[linewidth=0.05](C)(D)
\end{pspicture}
\end{center}
\end{document}

\documentclass{article}
\usepackage{pst-solides3d}
\definecolor{coquille}{rgb}{0.984 0.95 0.718}
\begin{document}
\begin{center}
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{viewpoint=100 30 50 rtp2xyz,Decran=100,lightsrc=viewpoint,solidmemory}
%\psSolid[object=grille,base=-4 4 -4 4]%
\psSolid[object=tore,
        r1=3,r0=1.5,grid,
        fillcolor=coquille,
        ngrid=24 60]
\psSolid[object=tore,
        r1=3,r0=1.5,
        action=none,name=torepois,
        ngrid=18 36]
\codejps{
% projection sur la face n°i
% coordonnées du centre et rayon du cercle
0 1 torepois solidnombrefaces 1 sub {/i exch def % numero de la face
torepois i solidgetsommetsface /TAB exch def
TAB 6 3 getinterval aload pop % sommet n°2 x2 y2 z2
TAB 3 3 getinterval aload pop % sommet n°1 x1 y1 z1
distance3d /Rayon exch 3 div def % distance entre les 2 sommets /3
0 360 0 0 Rayon Cercle_ torepois i projpath
i 2 modulo 0 eq {(red) cvx exec}{(blue) cvx exec}ifelse
fill
} for
}%
\end{pspicture}
\end{center}
\end{document}





\documentclass{article}
\usepackage{pst-solides3d}
\definecolor{coquille}{rgb}{0.984 0.95 0.718}
\begin{document}
\begin{center}
\begin{pspicture}(-5,-3)(5,5)
\psframe(-5,-3)(5,5)
\pstVerb{/hauteur 5 def /rayon 3 def /angleT 50 def}%
\psset{viewpoint=20 angleT 30 rtp2xyz,Decran=15,lightsrc=15 30 30 rtp2xyz,solidmemory}
\psSolid[object=grille,base=-4 4 -4 4,linewidth=0.02,opacity=0.5](0,0,0)
\psSolid[object=cone,
         h=hauteur,r=rayon,grid,
         fillcolor=coquille,
        ngrid=1 72]
\psSolid[object=cone,
         h=hauteur,r=rayon,grid,
         hue=0 1 0.8 1,action=none,name=conepois,
        ngrid=18 40]
\codejps{
% projection sur la face n°i
% coordonnées du centre et rayon du cercle
0 1 conepois solidnombrefaces 1 sub {/i exch def % numero de la face
conepois i solidgetsommetsface /TAB exch def
TAB 0 3 getinterval aload pop % sommet n°2 x2 y2 z2
TAB 3 3 getinterval aload pop % sommet n°1 x1 y1 z1
distance3d /Rayon exch 3 div def % distance entre les 2 sommets /4
0 360 0 0 Rayon Cercle_ conepois i projpath
i 2 modulo 0 eq {(red) cvx exec}{(blue) cvx exec}ifelse
fill
} for
}%
\psSolid[object=plan,definition=normalpoint,args={0 0 0 [0 0 1]},
         action=none,
         base=-4 4 -4 4,
         name=monplanB]
\psset{plan=monplanB}
\psProjection[object=cercle,linewidth=0.05,
              args=0 0 rayon,range=-90 angleT add 90 angleT add]
\psPoint(angleT sin rayon mul,angleT cos rayon mul neg,0){A}
\psPoint(0,0,hauteur){H}
\psPoint(angleT sin rayon mul neg,angleT cos rayon mul,0){B}
\psline[linewidth=0.05](B)(H)(A)
\end{pspicture}
\end{center}
\end{document}

La sphère a déjà été traitée ici :
http://pstricks.blogspot.fr/2015/04/sphere-points.html




Aucun commentaire:

Enregistrer un commentaire