#include "library.h" const double pi=acos(-1); void draw_ammonite(Xframe *f) { f->PenColor(PEN_RED); f->MoveTo(50, 50); int c=0; double x1, y1; for (double a=0; a<=6*pi; a+=pi/100) { x1=50-2.5*a*sin(a); y1=50-2.5*a*cos(a); f->DrawLineTo(x1,y1); if (c==15) { double x2=50, y2=50; if (a>=2*pi) { x2-=2.5*(a-2*pi)*sin(a); y2-=2.5*(a-2*pi)*cos(a); } f->DrawLineTo(x2, y2); f->MoveTo(x1,y1); c=0; } c+=1; } double y2=50-2.5*4*pi; f->DrawLineTo(50, y1); for (int z=0; z<8; z+=1) f->DrawLineTo(z%2==0 ? 30 : 0, y1+(y2-y1)/8*z); f->DrawLineTo(50, y2); f->DrawLineTo(50, y1); for (int w=7; w>=3; w-=2) { f->PenColor(w==5 ? PEN_WHITE : PEN_RED); f->PenWidth(w); f->DrawPointAt(40, (2*y1+y2)/3); } } void main(void) { MakeWindow(500, 500); Xframe * aside = new Xframe(OFF_SCREEN, 100, 100); draw_ammonite(aside); Xframe * mainw = GetMainWindow(); BitmapCopy(100, 100, mainw, 100, 100, aside, 0, 0); BitmapCopy(100, 100, mainw, 300, 300, aside, 0, 0); BitmapCopy(100, 100, mainw, 20, 300, aside, 0, 0); BitmapCopy(100, 100, mainw, 60, 200, aside, 0, 0); BitmapCopy(100, 100, mainw, 250, 175, aside, 0, 0); BitmapCopy(100, 100, mainw, 270, 25, aside, 0, 0); BitmapCopy(100, 100, mainw, 100, 400, aside, 0, 0); }