Bitmap/Flood fill: Difference between revisions

Content added Content deleted
Line 2,600: Line 2,600:


class RGBColour
class RGBColour
def ==(a_colour)
def ==(other)
values == a_colour.values
values == other.values
end
end
end
end
Line 2,609: Line 2,609:
current_colour = self[pixel.x, pixel.y]
current_colour = self[pixel.x, pixel.y]
queue = Queue.new
queue = Queue.new
queue.enqueue(pixel)
queue.enq(pixel)
until queue.empty?
until queue.empty?
p = queue.dequeue
p = queue.pop
next unless self[p.x, p.y] == current_colour
next unless self[p.x, p.y] == current_colour


Line 2,621: Line 2,621:
%i[north south].each do |direction|
%i[north south].each do |direction|
n = neighbour(q, direction)
n = neighbour(q, direction)
queue.enqueue(n) if self[n.x, n.y] == current_colour
queue.enq(n) if self[n.x, n.y] == current_colour
end
end
q = neighbour(q, :east)
q = neighbour(q, :east)
Line 2,657: Line 2,657:
JRubyArt is a port of Processing to the ruby language
JRubyArt is a port of Processing to the ruby language


<lang ruby>
<lang ruby># holder for pixel coords
# holder for pixel coords
Pixel = Struct.new(:x, :y)
Pixel = Struct.new(:x, :y)