Bitmap/Midpoint circle algorithm: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: changed a program comment, added/changed comments in the REXX section header.) |
No edit summary |
||
Line 600: | Line 600: | ||
.......##.......##....... |
.......##.......##....... |
||
.........#######.........</pre> |
.........#######.........</pre> |
||
=={{header|ERRE}}== |
|||
<lang ERRE>PROGRAM BCircle |
|||
!$INCLUDE="PC.LIB" |
|||
PROCEDURE BCircle(cx%,cy%,r%) |
|||
local f%,x%,y%,ddx%,ddy% |
|||
f%=1-r% y%=r% ddy%=-2*r% |
|||
PSET(cx%,cy%+r%,1) |
|||
PSET(cx%,cy%-r%,1) |
|||
PSET(cx%+r%,cy%,1) |
|||
PSET(cx%-r%,cy%,1) |
|||
WHILE x%<y% DO |
|||
IF f%>=0 THEN |
|||
y%=y%-1 |
|||
ddy%=ddy%+2 |
|||
f%=f%+ddy% |
|||
END IF |
|||
x%=x%+1 |
|||
ddx%=ddx%+2 |
|||
f%=f%+ddx%+1 |
|||
PSET(cx%+x%,cy%+y%,1) |
|||
PSET(cx%-x%,cy%+y%,1) |
|||
PSET(cx%+x%,cy%-y%,1) |
|||
PSET(cx%-x%,cy%-y%,1) |
|||
PSET(cx%+y%,cy%+x%,1) |
|||
PSET(cx%-y%,cy%+x%,1) |
|||
PSET(cx%+y%,cy%-x%,1) |
|||
PSET(cx%-y%,cy%-x%,1) |
|||
END WHILE |
|||
END PROCEDURE |
|||
BEGIN |
|||
SCREEN(1) |
|||
! Draw circles |
|||
BCircle(100,100,40) |
|||
BCircle(100,100,80) |
|||
END PROGRAM |
|||
</lang> |
|||
=={{header|FBSL}}== |
=={{header|FBSL}}== |