10 REM > Testing.VDU.Ellipse
   20 CLS
   30 PRINT"This tests PLOT 197 and PLOT 205"
   40 PRINT"There should be two ellipses at 45 degrees"
   50 PROCellipse(896,576,120,60,33,0)
   60 PROCellipse(496,576,120,60,33,1)
   70 END
   80 :
   90 DEFPROCellipse(centrex%,centrey%,semimajor,semiminor,angle,filled%)
  100 LOCAL cosang,sinang,maxy,shearx,slicewidth
  110 cosang=COS(RAD(angle))
  120 sinang=SIN(RAD(angle))
  130 maxy=SQR((semiminor*cosang)^2+(semimajor*sinang)^2)
  140 shearx=(semimajor^2-semiminor^2)*cosang*sinang/maxy
  150 slicewidth=semimajor*semiminor/maxy
  160 MOVE centrex%,centrey%
  170 MOVE centrex%+slicewidth,centrey%
  180 IF filled% THEN filled%=205 ELSE filled%=197
  190 PLOT filled%,centrex%+shearx,centrey%+maxy
  200 ENDPROC