spheroid:= proc(c,u,v,w) local p,t,cc; if nargs = 5 then cc := args[5] else cc := tan fi; plot3d(evl(c+ cos(p)*u +sin(p)*(cos(t)*v + sin(t)*w)), p=0..Pi, t = 0 .. 2*Pi,style=patch,grid=[8,8],colour=cc) end; skier:= proc(R,T,C,B,U) local y1,y2,h1,h2, a, a1,a2; h1:= .3*U &. B; y1:= .6 - h1; h2:= -h1; a1:= fsolve((.4+.4*cos(a))^2+(y1-.4*sin(a))^2-.36); y2:= 1.2 - y1; a2:= fsolve((.4+.4*cos(a))^2+(y2-.4*sin(a))^2-.36); display({ spheroid(R+.75*B,.5*T+.1*B,-.04*T+.2*B,.3*C), spheroid(R+.25*T+.2*C+.6*B,.25*T-.1*C,.02*T+.05*C,.06*B,brown), spheroid(R+.25*T-.2*C+.6*B,.25*T+.1*C,.02*T-.05*C,.06*B,brown), spheroid(R+.5*T+.8*B,.15*T,.15*C,.15*B,black), spheroid(R+(-.2+.2*cos(a1))*T+.15*C+(.3+h1/2+.2*sin(a1))*B, (.2+.2*cos(a1))*T+(h1/2-.3+.2*sin(a1))*B+.05*C,.13*C, (-.15*h1-.09+.06*sin(a1))*T-.06*(1+cos(a1))*B,brown), spheroid(R+.2*cos(a1)*T+.2*C+(h1+.2*sin(a1))*B, .2*cos(a1)*T+.2*sin(a1)*B,.1*C,-.05*sin(a1)*T+.05*cos(a1)*B,brown), spheroid(R+(-.2+.2*cos(a2))*T-.15*C+(.3+h2/2+.2*sin(a2))*B, (.2+.2*cos(a2))*T+(h2/2-.3+.2*sin(a2))*B-.05*C,.13*C, (-.15*h1-.09+.06*sin(a2))*T-.06*(1+cos(a2))*B,brown), spheroid(R+.2*cos(a2)*T-.2*C+(h2+.2*sin(a2))*B, .2*cos(a2)*T+.2*sin(a2)*B,-.1*C,-.05*sin(a2)*T+.05*cos(a2)*B,brown)}) end;