Category:Action! Bitmap tools: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 204: Line 204:
y1==+sy
y1==+sy
FI
FI
OD
RETURN

MODULE</lang>

----

=== RGBCIRCL.ACT ===

The following module contains implementation of drawing circle on RGB color image using midpoint circle algorithm.
<lang Action!>MODULE

INCLUDE "H6:RGBIMAGE.ACT" ;from task Bitmap

PROC RgbCircle(RgbImage POINTER img
INT x0,y0,radius RGB POINTER c)
INT f,ddfx,ddfy,x,y

f=1-radius
ddfx=0 ddfy=-2*radius
x=0 y=radius
SetRgbPixel(img,x0,y0+radius,c)
SetRgbPixel(img,x0,y0-radius,c)
SetRgbPixel(img,x0+radius,y0,c)
SetRgbPixel(img,x0-radius,y0,c)

WHILE x<y
DO
IF f>=0 THEN
y==-1
ddfy==+2
f==+ddfy
FI
x==+1
ddfx==+2
f==+ddfx+1
SetRgbPixel(img,x0+x,y0+y,c)
SetRgbPixel(img,x0-x,y0+y,c)
SetRgbPixel(img,x0+x,y0-y,c)
SetRgbPixel(img,x0-x,y0-y,c)
SetRgbPixel(img,x0+y,y0+x,c)
SetRgbPixel(img,x0-y,y0+x,c)
SetRgbPixel(img,x0+y,y0-x,c)
SetRgbPixel(img,x0-y,y0-x,c)
OD
OD
RETURN
RETURN