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 |