with(plots):with(plottools): interface( plotdevice=ps ); Body := cylinder([0,0,0], 1,3,capped=true): Arm:= cylinder([0,0,0],0.25,2.5): ArmL := translate(rotate(Arm,0,Pi*1.5,0),1,0,2.75): ArmR := translate(rotate(Arm,0,Pi*0.5,0),-1,0,2.75): Leg:= cylinder([0,0,0],0.4,3): LegL:=translate(Leg,0.7,0,-3): LegR:=translate(Leg,-0.7,0,-3):Head:=sphere([0,0,3.8],0.8): GB3D:= display({ArmR,ArmL,Body,LegL,LegR,Head}): plotsetup(ps,plotoutput=`fig3a.ps`,plotoptions=`portrait,noborder`); display(GB3D,scaling=CONSTRAINED); r:=sqrt(x1^2+x2^2+x3^2); X0:= simplify( (r^2-1)/(r^2+1) ); X1:= 2*x1/(1+r^2);X2:=2*x2/(1+r^2);X3:=2*x3/(1+r^2); y0:=simplify( X0/(1-X1) );y2:=simplify( X2/(1-X1) );y3:=simplify( X3/(1-X1) ); f:= unapply( [y0,y2,y3],x1,x2,x3); F:=transform(f): GB3D1 := translate(scale(GB3D,0.2,0.2,0.2),1,1,1): GB3D2:= display( F(GB3D1) ): plotsetup(ps,plotoutput=`fig3b.ps`,plotoptions=`portrait,noborder`); display(GB3D2,orientation=[-31,122],scaling=CONSTRAINED); stop;