Bitmap/Flood fill: Difference between revisions

Content added Content deleted
(Added solution for Action!)
Line 16: Line 16:
RGB black,white,yellow,blue
RGB black,white,yellow,blue


DEFINE PTR="CARD"
TYPE PointB=[BYTE px,py]
TYPE PointB=[BYTE px,py]
TYPE Queue=[PTR qfront,qrear,qdata INT capacity]

TYPE Queue=[CARD qfront,qrear,capacity,qdata]


PROC QueueInit(Queue POINTER q)
PROC QueueInit(Queue POINTER q)
Line 37: Line 37:


PROC QueuePush(Queue POINTER q PointB POINTER p)
PROC QueuePush(Queue POINTER q PointB POINTER p)
CARD rear
PTR rear
PointB POINTER tmp
PointB POINTER tmp


Line 69: Line 69:


PROC DrawImage(RgbImage POINTER img BYTE x,y)
PROC DrawImage(RgbImage POINTER img BYTE x,y)
RGB POINTER ptr
RGB POINTER p
BYTE i,j
BYTE i,j


ptr=img.data
p=img.data
FOR j=0 TO img.h-1
FOR j=0 TO img.h-1
DO
DO
FOR i=0 TO img.w-1
FOR i=0 TO img.w-1
DO
DO
IF RgbEqual(ptr,yellow) THEN
IF RgbEqual(p,yellow) THEN
Color=1
Color=1
ELSEIF RgbEqual(ptr,white) THEN
ELSEIF RgbEqual(p,white) THEN
Color=2
Color=2
ELSEIF RgbEqual(ptr,blue) THEN
ELSEIF RgbEqual(p,blue) THEN
Color=3
Color=3
ELSE
ELSE
Line 87: Line 87:
FI
FI
Plot(x+i,y+j)
Plot(x+i,y+j)
ptr==+RGBSIZE
p==+RGBSIZE
OD
OD
OD
OD
Line 148: Line 148:
RgbImage img
RgbImage img
BYTE CH=$02FC,size=[40]
BYTE CH=$02FC,size=[40]
BYTE ARRAY ptr(4800)
BYTE ARRAY p(4800)
BYTE n
BYTE n
INT x,y
INT x,y
Line 164: Line 164:
RgbBlue(blue)
RgbBlue(blue)


InitRgbImage(img,size,size,ptr)
InitRgbImage(img,size,size,p)
FillRgbImage(img,black)
FillRgbImage(img,black)