restart;
with(plots):
with(plottools):
p1:=display(sphere([0,0,1],1)):
p2:=display(sphere([1,1,0.3],0.3)):
p3:=display(sphere([0,2,0.5],0.5)):
pa:=display(p1,p2,p3,scaling=constrained,style=patchnogrid):
expand((1-u1)*[1,1,0.3]+u1*[0,2,0.5]);
u1:=-3/2;
expand((1-u1)*[1,1,0.3]+u1*[0,2,0.5]);
p32:=display(line([0,2,0],[5/2,-1/2,0]),thickness=3,color=red):
expand((1-u2)*[0,2,0.5]+u2*[0,0,1]);
u2:=-1;
expand((1-u2)*[0,2,0.5]+u2*[0,0,1]);
p13:=display(line([0,0,0],[0,4,0]),thickness=3,color=green):
expand((1-u3)*[1,1,0.3]+u3*[0,0,1]);
u3:=-3/7;
expand((1-u3)*[1,1,0.3]+u3*[0,0,1]);
p12:=display(line([10/7,10/7,0],[0,0,0]),thickness=3,color=blue):
pb:=display(p12,p13,p32):
pc:=reflect(pb,[[0,0,1],[1,1,0.3],[0,2,0.5]]):
pd:=display(line([0,4,0],[5/2,-1/2,0]),thickness=3,color=yellow):
display(pa,pb,pc,pd);