Anonymous user
Plasma effect: Difference between revisions
m
→{{header|Ruby}}
No edit summary |
|||
Line 1,484:
JRubyArt is a port of Processing to the ruby language
<lang ruby>
attr_reader :buffer, :palette, :r, :g, :b, :rd, :gd, :bd, :dim
def settings
Line 1,491:
def setup
sketch_title 'Plasma Effect'
frame_rate
@r = 42
@g = 84
@b = 126
@buffer = Array.new(width * height)▼
@dim = width * height
grid(width, height) do |x, y|
buffer[x + y * width] = (
Line 1,503 ⟶ 1,507:
(128 + (128 * cos(y / 32.0))) +
(128 + (128 * sin(Math.hypot(x, y) / 32.0)))
end
load_pixels
Line 1,510 ⟶ 1,514:
def draw
▲ @rd = true if r > 128
if rd
@r -= 1
@rd = false if r.negative?▼
else
@r += 1
@rd = true if r > 128
end
▲ @rd = false if r.negative?
▲ @gd = true if g > 128
if gd
@g -= 1
@gd = false if g.negative?▼
else
@g += 1
@gd = true if g > 128
end
▲ @gd = false if g.negative?
▲ @bd = true if b > 128
if bd
@b -= 1
@bd = false if b.negative?▼
else
@b += 1
@bd = true if b > 128
end
▲ @bd = false if b.negative?
s1 = sin(col * Math::PI / 25)
▲ @palette = (0..128).map do |col|
end
▲ buffer.length.times do |i|
▲ pixels[i] = palette[(buffer[i] + frame_count) & 127]
end
update_pixels
end
</lang>
|