> with(plots):with(plottools): > p000:=[0,0,0]:p001:=[0,0,1]:p010:=[0,1,0]:p011:=[0,1,1]: > p100:=[1,0,0]:p101:=[1,0,1]:p110:=[1,1,0]:p111:=[1,1,1]:p:=p111: > macro(red2=COLOR(RGB,1,.5,.5)); > macro(green2=COLOR(RGB,.5,1,.5)); > macro(blue2=COLOR(RGB,.5,.5,1)); > P1:=display(polygon([p000,p100,p110,p010],color=red),line(p,p000,color=red2), > line(p,p100,color=red2),line(p,p110,color=red2),line(p,p010,color=red2)): > P2:=display(polygon([p010,p011,p001,p000],color=blue),line(p,p010,color=blue2), > line(p,p011,color=blue2),line(p,p001,color=blue2),line(p,p000,color=blue2)): > P3:=display(polygon([p100,p101,p001,p000],color=green),line(p,p100,color=green2), > line(p,p101,color=green2),line(p,p001,color=green2),line(p,p000,color=green2)): > frame:=array(0..16); > for i from 0 to 16 do > theta:=i*Pi/32; > frame[i]:=display(P1,rotate(P3,theta,[[0,0,0],[1,0,0]]), > rotate(P2,-theta,[[0,0,0],[0,1,0]]),scaling=constrained): > od: > display(seq(frame[i],i=0..16),seq(frame[16-i],i=0..16),insequence=true);