[pstricks] pst-solides3d

Herbert Voss Herbert.Voss at fu-berlin.de
Sat Jan 5 20:40:56 CET 2019



Am 04.01.19 um 23:41 schrieb Poul Riis:
> I'm now pretty close to what I want except that the circle should be a 
> hole (circle filled with background color). Is it possible to do that?
> By the way, I wonder who the circle is drawn with the fillcolor, not the 
> linecolor.

The 3D-curve cannot be filled. Use the projection. It is a
bit dabgerous to mix 3d stuff from pst-solides3d and 2d stuff
from PSTricks. Draw first all 3d stuff then \compüoseSolid and
then all the  \uput et al.

And by the way: why do you send all mails twice?


\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage{pst-tools}
\usepackage{pst-solides3d}

\begin{document}
	\psset{unit=5mm}
	\begin{pspicture}[solidmemory](-10,-15)(10,15)
	\pstVerb{/aa 12 def /bb 8 def /cc 4 def /philid 30 def /radius 3 def 
/cosphi philid
		cos def /sinphi philid
		sin def /Mlidx cosphi 1 sub aa mul 2 div def /Mlidy 0 def /Mlidz 
sinphi aa mul 2
		div cc add def /nlidx
		sinphi neg def /nlidz cosphi def /Ax Mlidx def /Ay
		radius def /Az Mlidz def
		/Bx Mlidx radius cosphi mul add def /By 0 def /Bz Mlidz radius sinphi
		mul add def /Cx Mlidx
		def /Cy radius neg def /Cz Mlidz def /ex Ax Mlidx sub def /ey Ay Mlidy 
sub def /ez Az Mlidz
		sub def /fx Bx Mlidx sub def /fy By Mlidy sub def /fz Bz Mlidz sub def}
	\psset{viewpoint=100 30 20,Decran=200}
	\psSolid[
	object=parallelepiped,%
	a=aa,b=bb,c=cc,
	hollow,
	fillcolor=Green3,
	affinage=0,
	affinagecoeff=1,
	incolor=yellow](0,0,cc 2 div)
	\psSolid[object=plan,
	definition=normalpoint,
	args={ Mlidx 0 Mlidz [sinphi 0 cosphi neg]},
	fillcolor=Gold3,
	base=aa neg 2 div aa 2 div bb neg 2 div bb 2 div,
	name=myplane]
	\psPoint(aa 0.6 mul,0,0){Tx}
	\psPoint(0,bb 0.55 mul,0){Ty}
	\psPoint(aa 2 div,bb 0.55 mul neg,cc 2 div){Tz}
	\psPoint(Ax,Ay,Az){Alid}
	\psPoint(Bx,By,Bz){Blid}
	\psPoint(Cx,Cy,Cz){Clid}
	%\psPoint(Ax Cx add 2 div,Ay Cy add 2 div,Az Cz add 2 div){MAC}
	\psPoint(Mlidx,Mlidy,Mlidz){MAC}	
	\psset{plan=myplane}
%	\defFunction{lidcircle}(t){t cos ex mul t sin fx mul add Mlidx add}{t 
cos ey mul t sin fy mul
%	add Mlidy add}{t cos ez mul t sin fz mul add Mlidz add}
     \defFunction[algebraic]{Circle}(t){3*sin(t)}{3*cos(t)}{}
     \psProjection[object=courbeR2,
        linecolor=Red1,fillstyle=solid,fillcolor=Blue1,
        range=0 TwoPi,resolution=720,function=Circle]
    \composeSolid
    \uput{0pt}[0]{0}(Tx){$x$}
    \uput{0pt}[0]{0}(Ty){$x$}
    \uput{0pt}[0]{0}(Tz){$h$}
    \psline[linestyle=dashed](Alid)(Clid)
    \uput{2pt}[90]{0}(MAC){$2r$}
\end{pspicture}
\end{document}

Herbert



More information about the PSTricks mailing list