% kindofcube.mp
% L. Nobre G.
% 2004

verbatimtex \documentclass{article}\begin{document}{\sffamily etex

beginfig(1);
  f := (4,1.2,0.5);
  Spread := 120;
  numeric lena, lenb, lenc, aa, ab, ac, angray, micr, labscal;
  pair zeror;
  color axa, axb, axc, returnedcorner, dummyc, auxx, auxy;
  lena=0.3;
  lenb=0.6;
  lenc=0.9;
  aa=130;
  ab=32;
  ac=67;
  labscal=1.6;
  angray=0.85;
  micr=0.01;
  zeror=rp(black);
  cartaxes(1.2,1,1.15);
  axa = ( cosd(aa), sind(aa), 0 );
  axb = axa*cosd(ab)+blue*sind(ab);
  auxx= ( cosd(aa+90), sind(aa+90), 0);
  auxy = ncrossprod( axb, auxx );
  axc = auxx*cosd(ac)+auxy*sind(ac);
  draw zeror--rp(axa);
  draw zeror--rp(axb);
  draw zeror--rp(-0.6*axa);
  draw zeror--rp(axc);
  draw zeror--rp(auxx);
  label.rt( btex $a$ etex scaled labscal, rp(axa) );
  label.rt( btex $b$ etex scaled labscal, rp(axb) );
  label.lft( btex $c$ etex scaled labscal, rp(auxx) );
  label.lft( btex $d$ etex scaled labscal, rp(axc) );
  angline( axa,red,black,angray,btex $\alpha_1$ etex scaled labscal,bot );
  angline( axb,axa,black,angray,btex $\alpha_2$ etex scaled labscal,rt );
  angline( axc,auxx,black,angray,btex $\alpha_3$ etex scaled labscal,lft );
  squareangline( -axa,auxx,black,0.2);
  drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue );
  kindofcube( false, true, black, aa, ab, ac, lena, lenb, lenc );
  drawoptions();
  dotlabel.bot( btex $\vec{o}$ etex scaled labscal, zeror );
  label.bot( btex $l_1$ etex scaled labscal, rp(lena*axb) );
  label.bot( btex $l_2$ etex scaled labscal, rp(0.5*lenb*axc) );
  label.ulft( btex $l_3$ etex scaled labscal,rp(0.5*lenc*ncrossprod(axb,axc)));
endfig;
  
verbatimtex 
\end{document} 
etex

end.

  
