home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / developmen / oplexamp / EX_CIRC1.OPL < prev    next >
Text File  |  1992-08-27  |  571b  |  25 lines

  1. PROC circle:
  2. LOCAL a%(483),c&,d%,x&,y&,r&,h,y%,y1%,c2%
  3. dINIT "Draw a circle"
  4. x&=120 :dLONG x&,"Centre x pos",0,239
  5. y&=40 :dLONG y&,"Centre y pos",0,79
  6. r&=20 :dLONG r&,"Radius",1,120
  7. h=1 :dFLOAT h,"Relative height",0,999
  8. IF DIALOG
  9.     a%(1)=x&+r& :a%(2)=y& :a%(3)=4*r&
  10.     c&=1 :d%=2*r& :y1%=0
  11.     WHILE c&<=d%
  12.         c2%=c&*2 :y%=-SQR(r&*c2%-c&**2)*h
  13.         a%(2+c2%)=-2 :a%(3+c2%)=y%-y1%
  14.         y1%=y% :c&=c&+1
  15.     ENDWH
  16.     c&=1
  17.     WHILE c&<=d%
  18.         c2%=c&*2 :y%=SQR(r&*c2%-c&**2)*h
  19.         a%(2+a%(3)+c2%)=2 :a%(3+a%(3)+c2%)=y%-y1%
  20.         y1%=y% :c&=c&+1
  21.     ENDWH
  22.     GPOLY a%() :GET
  23. ENDIF
  24. ENDP
  25.