ruby-processing 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. data/CHANGELOG +8 -0
  2. data/lib/patches/JRubyApplet.diff +0 -0
  3. data/lib/patches/PATCHES.txt +0 -0
  4. data/lib/patches/PApplet.diff +0 -0
  5. data/lib/ruby-processing.rb +1 -1
  6. data/lib/ruby-processing/app.rb +20 -1
  7. data/lib/ruby-processing/exporters/base_exporter.rb +1 -1
  8. data/lib/ruby-processing/exporters/creator.rb +1 -2
  9. data/lib/ruby-processing/runner.rb +4 -3
  10. data/lib/ruby-processing/runners/watch.rb +2 -2
  11. data/lib/templates/applet/index.html.erb +1 -1
  12. metadata +2 -145
  13. data/samples/learning_processing/ABOUT +0 -11
  14. data/samples/learning_processing/chapter_01/1_stroke_and_fill.rb +0 -18
  15. data/samples/learning_processing/chapter_01/2_nofill.rb +0 -20
  16. data/samples/learning_processing/chapter_01/3_rgb_color.rb +0 -19
  17. data/samples/learning_processing/chapter_01/4_alpha_transparency.rb +0 -42
  18. data/samples/learning_processing/chapter_01/5_zoog.rb +0 -24
  19. data/samples/learning_processing/chapter_02/1_zoog_again.rb +0 -41
  20. data/samples/learning_processing/chapter_03/1_zoog_as_dynamic_sketch.rb +0 -44
  21. data/samples/learning_processing/chapter_03/2_mouse_x_and_mouse_y.rb +0 -26
  22. data/samples/learning_processing/chapter_03/3_zoog_as_dynamic_sketch_with_variation.rb +0 -41
  23. data/samples/learning_processing/chapter_03/4_drawing_a_continuous_line.rb +0 -18
  24. data/samples/learning_processing/chapter_03/5_mouse_pressed_and_key_pressed.rb +0 -29
  25. data/samples/learning_processing/chapter_03/6_interactive_zoog.rb +0 -42
  26. data/samples/learning_processing/chapter_04/1_variable_declaration.rb +0 -24
  27. data/samples/learning_processing/chapter_04/2_using_variables.rb +0 -27
  28. data/samples/learning_processing/chapter_04/3_varying_variables.rb +0 -27
  29. data/samples/learning_processing/chapter_04/4_many_variables.rb +0 -38
  30. data/samples/learning_processing/chapter_04/5_using_system_variables.rb +0 -28
  31. data/samples/learning_processing/chapter_04/6_ellipse_with_variables.rb +0 -24
  32. data/samples/learning_processing/chapter_04/7_filling_variables_with_random_values.rb +0 -27
  33. data/samples/learning_processing/chapter_04/8_variable_zoog.rb +0 -50
  34. data/samples/learning_processing/chapter_05/01_conditionals.rb +0 -31
  35. data/samples/learning_processing/chapter_05/02_more_conditionals.rb +0 -38
  36. data/samples/learning_processing/chapter_05/03_rollovers.rb +0 -34
  37. data/samples/learning_processing/chapter_05/04_hold_down_the_button.rb +0 -33
  38. data/samples/learning_processing/chapter_05/05_button_as_switch.rb +0 -39
  39. data/samples/learning_processing/chapter_05/06_bouncing_ball.rb +0 -33
  40. data/samples/learning_processing/chapter_05/07_bouncing_color.rb +0 -37
  41. data/samples/learning_processing/chapter_05/08_square_following_edge.rb +0 -59
  42. data/samples/learning_processing/chapter_05/09_simple_gravity.rb +0 -43
  43. data/samples/learning_processing/chapter_05/10_zoog_and_conditionals.rb +0 -53
  44. data/samples/learning_processing/chapter_06/01_many_lines.rb +0 -29
  45. data/samples/learning_processing/chapter_06/02_many_lines_with_variables.rb +0 -53
  46. data/samples/learning_processing/chapter_06/03_while_loop.rb +0 -30
  47. data/samples/learning_processing/chapter_06/04_infinite_loop.rb +0 -25
  48. data/samples/learning_processing/chapter_06/05_another_infinite_loop.rb +0 -33
  49. data/samples/learning_processing/chapter_06/06_legs_with_a_for_loop.rb +0 -41
  50. data/samples/learning_processing/chapter_06/07_local_variables.rb +0 -39
  51. data/samples/learning_processing/chapter_06/08_lines_one_at_a_time.rb +0 -30
  52. data/samples/learning_processing/chapter_06/09_simple_while_loop_with_interactivity.rb +0 -41
  53. data/samples/learning_processing/chapter_06/10_zoog_with_arms.rb +0 -56
  54. data/samples/learning_processing/chapter_06/11_multiple_zoogs.rb +0 -46
  55. data/samples/learning_processing/chapter_07/01_defining_a_function.rb +0 -22
  56. data/samples/learning_processing/chapter_07/02_calling_a_function.rb +0 -22
  57. data/samples/learning_processing/chapter_07/03_bouncing_ball_with_functions.rb +0 -49
  58. data/samples/learning_processing/chapter_07/04_function_returns_distance.rb +0 -48
  59. data/samples/learning_processing/chapter_07/05_zoog_with_functions.rb +0 -71
  60. data/samples/learning_processing/chapter_08/01_car_class_and_car_variable.rb +0 -45
  61. data/samples/learning_processing/chapter_08/02_two_car_objects.rb +0 -60
  62. data/samples/learning_processing/chapter_08/03_object_oriented_zoog.rb +0 -81
  63. data/samples/learning_processing/chapter_10/01_catcher.rb +0 -35
  64. data/samples/learning_processing/chapter_10/02_bouncing_ball.rb +0 -44
  65. data/samples/learning_processing/chapter_10/03_bouncing_balls_with_intersection.rb +0 -69
  66. data/samples/learning_processing/chapter_10/04_a_timer.rb +0 -24
  67. data/samples/learning_processing/chapter_10/05_object_oriented_timer.rb +0 -42
  68. data/samples/learning_processing/chapter_10/06_simple_raindrop.rb +0 -23
  69. data/samples/learning_processing/chapter_10/07_drops_one_at_a_time.rb +0 -63
  70. data/samples/learning_processing/chapter_13/02_random_number_distribution.rb +0 -24
  71. data/samples/learning_processing/chapter_13/03_probabilities.rb +0 -33
  72. data/samples/learning_processing/chapter_13/04_perlin_noise.rb +0 -22
  73. data/samples/learning_processing/chapter_13/06_oscillation.rb +0 -29
  74. data/samples/learning_processing/chapter_13/07_wave.rb +0 -31
  75. data/samples/learning_processing/chapter_13/08_recursion.rb +0 -30
  76. data/samples/learning_processing/chapter_13/09_two_dimensional_array.rb +0 -21
  77. data/samples/learning_processing/chapter_13/10_two_dimensional_array_with_objects.rb +0 -54
  78. data/samples/learning_processing/chapter_14/01_growing_rectangle.rb +0 -26
  79. data/samples/learning_processing/chapter_14/02_multiple_translations.rb +0 -37
  80. data/samples/learning_processing/chapter_14/03_depth_rectangle.rb +0 -29
  81. data/samples/learning_processing/chapter_14/04_pyramid_using_beingshape.rb +0 -55
  82. data/samples/learning_processing/chapter_14/05_rotate_rectangle_around_center.rb +0 -28
  83. data/samples/learning_processing/chapter_14/06_rotate_z.rb +0 -24
  84. data/samples/learning_processing/chapter_14/07_rotate_x.rb +0 -24
  85. data/samples/learning_processing/chapter_14/08_rotate_y.rb +0 -24
  86. data/samples/learning_processing/chapter_14/09_rotate_all.rb +0 -24
  87. data/samples/learning_processing/chapter_14/10_draw_pyramid.rb +0 -59
  88. data/samples/learning_processing/chapter_14/12_rotating_one_square.rb +0 -25
  89. data/samples/learning_processing/chapter_14/13_rotating_another_square.rb +0 -25
  90. data/samples/learning_processing/chapter_14/14_rotating_both_squares.rb +0 -43
  91. data/samples/learning_processing/chapter_14/15_rotating_many_things.rb +0 -56
  92. data/samples/learning_processing/chapter_14/16_simple_solar_system.rb +0 -53
  93. data/samples/learning_processing/chapter_14/17_nested_push_and_pop.rb +0 -50
  94. data/samples/learning_processing/chapter_14/18_object_oriented_solar_system.rb +0 -69
  95. data/samples/learning_processing/chapter_15/01_hello_world_image.rb +0 -20
  96. data/samples/learning_processing/chapter_15/02_image_sprite.rb +0 -29
  97. data/samples/learning_processing/chapter_15/03_swapping_images.rb +0 -25
  98. data/samples/learning_processing/chapter_15/04_image_sequence.rb +0 -22
  99. data/samples/learning_processing/chapter_15/05_setting_pixels.rb +0 -19
  100. data/samples/learning_processing/chapter_15/06_pixels_2d.rb +0 -29
  101. data/samples/learning_processing/chapter_15/07_image_pixels.rb +0 -40
  102. data/samples/learning_processing/chapter_15/08_image_brightness.rb +0 -29
  103. data/samples/learning_processing/chapter_15/09_flashlight_effect.rb +0 -42
  104. data/samples/learning_processing/chapter_15/10_brightness_threshold.rb +0 -33
  105. data/samples/learning_processing/chapter_15/11_brightness_threshold_with_filter.rb +0 -20
  106. data/samples/learning_processing/chapter_15/12_pixel_neighbour_differences.rb +0 -43
  107. data/samples/learning_processing/chapter_15/14_pointillism.rb +0 -34
  108. data/samples/learning_processing/chapter_15/15_2d_image_mapped_to_3d.rb +0 -43
  109. data/samples/learning_processing/chapter_15/data/animal0.jpg +0 -0
  110. data/samples/learning_processing/chapter_15/data/animal1.jpg +0 -0
  111. data/samples/learning_processing/chapter_15/data/animal2.jpg +0 -0
  112. data/samples/learning_processing/chapter_15/data/animal3.jpg +0 -0
  113. data/samples/learning_processing/chapter_15/data/animal4.jpg +0 -0
  114. data/samples/learning_processing/chapter_15/data/animal5.jpg +0 -0
  115. data/samples/learning_processing/chapter_15/data/animal6.jpg +0 -0
  116. data/samples/learning_processing/chapter_15/data/face.jpg +0 -0
  117. data/samples/learning_processing/chapter_15/data/mysummervacation.jpg +0 -0
  118. data/samples/learning_processing/chapter_15/data/sunflower.jpg +0 -0
  119. data/samples/learning_processing/chapter_16/01_display_video.rb +0 -25
  120. data/samples/learning_processing/chapter_16/02_manipulate_video_image.rb +0 -24
  121. data/samples/learning_processing/chapter_16/03_adjust_video_brightness.rb +0 -49
  122. data/samples/learning_processing/chapter_17/01_simple_displaying_text.rb +0 -14
  123. data/samples/learning_processing/chapter_17/02_text_align.rb +0 -21
  124. data/samples/learning_processing/chapter_17/03_scrolling_headlines.rb +0 -35
  125. data/samples/learning_processing/chapter_17/04_text_mirror.rb +0 -68
  126. data/samples/learning_processing/chapter_17/05_rotating_text.rb +0 -22
  127. data/samples/learning_processing/chapter_17/06_text_breaking_up.rb +0 -73
  128. data/samples/learning_processing/chapter_17/07_boxes_along_a_curve.rb +0 -49
  129. data/samples/learning_processing/chapter_17/08_characters_along_a_curve.rb +0 -51
  130. data/samples/learning_processing/chapter_17/data/ArialMT-16.vlw +0 -0
  131. data/samples/learning_processing/chapter_17/data/Courier-Bold-20.vlw +0 -0
  132. data/samples/learning_processing/chapter_18/01_user_input.rb +0 -39
  133. data/samples/learning_processing/chapter_18/02_graphing_comma_separated_numbers_from_a_text_file.rb +0 -28
  134. data/samples/learning_processing/chapter_18/03_creating_object_from_a_text_file.rb +0 -64
  135. data/samples/learning_processing/chapter_18/data/data-1.txt +0 -1
  136. data/samples/learning_processing/chapter_18/data/data-2.txt +0 -10
@@ -1,56 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- # A Rotater class
4
- class Rotater
5
-
6
- def initialize(x, y, speed, width)
7
- @x, @y = x, y
8
- # Angle is always initialized to 0
9
- @theta = 0
10
- @speed = speed
11
- @w = width
12
- end
13
-
14
- # Increment angle
15
- def spin
16
- @theta += @speed
17
- end
18
-
19
- # Display rectangle
20
- def display
21
- # push_matrix and pop_matrix are called inside the class' display method.
22
- # This way, every Rotater object is rendered with its own independent translation and rotation!
23
- $app.push_matrix
24
- $app.translate @x, @y
25
- $app.rotate @theta
26
- $app.rect 0, 0, @w, @w
27
- $app.pop_matrix
28
- end
29
-
30
- end
31
-
32
- class RotatingManyThingsSketch < Processing::App
33
-
34
- def setup
35
- rect_mode CENTER
36
- stroke 0
37
- fill 0, 100
38
- @rotaters = Array.new(20) do
39
- Rotater.new(rand(width), rand(height), random(-0.1, 0.1), rand(48))
40
- end
41
- end
42
-
43
- def draw
44
- background 255
45
-
46
- # All Rotaters spin and are displayed
47
- @rotaters.each do |r|
48
- r.spin
49
- r.display
50
- end
51
- end
52
-
53
- end
54
-
55
- RotatingManyThingsSketch.new :title => "Rotating Many Things", :width => 200, :height => 200
56
-
@@ -1,53 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class SimpleSolarSystemSketch < Processing::App
4
-
5
- def setup
6
- smooth
7
- @theta = 0 # Angle of rotation around sun and planets
8
- end
9
-
10
- def draw
11
- background 255
12
- stroke 0
13
-
14
- # Translate to center of window to draw the sun.
15
- translate width/2, height/2
16
- fill 255, 200, 50
17
- ellipse 0, 0, 20, 20
18
-
19
- # The earth rotates around the sun
20
- push_matrix
21
- rotate @theta
22
- translate 50, 0
23
- fill 50, 200, 255
24
- ellipse 0, 0, 10, 10
25
-
26
- # Moon #1 rotates around the earth
27
- # push_matrix is called to save the transformation state before drawing moon #1.
28
- # This way we can pop and return to earth before drawing moon #2.
29
- # Both moons rotate around the earth which itself is rotating around the sun).
30
- push_matrix
31
- rotate -@theta*4
32
- translate 15, 0
33
- fill 50, 255, 200
34
- ellipse 0, 0, 6, 6
35
- pop_matrix
36
-
37
- # Moon #2 also rotates around the earth
38
- push_matrix
39
- rotate @theta*2
40
- translate 25, 0
41
- fill 50, 255, 200
42
- ellipse 0, 0, 6, 6
43
- pop_matrix
44
-
45
- pop_matrix
46
-
47
- @theta += 0.01;
48
- end
49
-
50
- end
51
-
52
- SimpleSolarSystemSketch.new :title => "Simple Solar System", :width => 200, :height => 200
53
-
@@ -1,50 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class NestedPushAndPopSketch < Processing::App
4
-
5
- def setup
6
- smooth
7
- @theta = 0 # angle for rotation
8
- end
9
-
10
- def draw
11
- background 255
12
- stroke 0
13
-
14
- # Translate to center of window
15
- translate width/2, height/2
16
-
17
- # Loop from 0 to 360 degrees (2*PI radians)
18
- 0.step(TWO_PI, 0.2) do |i|
19
-
20
- # Push, rotate and draw a line!
21
- # The transformation state is saved at the beginning of each cycle through the for loop and restored at the end.
22
- # Try commenting out these lines to see the difference!
23
- push_matrix
24
- rotate @theta + i
25
- line 0, 0, 100, 0
26
-
27
- # Loop from 0 to 360 degrees (2*PI radians)
28
- 0.step(TWO_PI, 0.5) do |j|
29
- # Push, translate, rotate and draw a line!
30
- push_matrix
31
- translate 100, 0
32
- rotate -@theta - j
33
- line 0, 0, 50, 0
34
- # We're done with the inside loop,pop!
35
- pop_matrix
36
- end
37
-
38
- # We're done with the outside loop, pop!
39
- pop_matrix
40
- end
41
- end_shape
42
-
43
- # Increment @theta
44
- @theta += 0.01
45
- end
46
-
47
- end
48
-
49
- NestedPushAndPopSketch.new :title => "Nested Push and Pop", :width => 200, :height => 200
50
-
@@ -1,69 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class Planet
4
-
5
- # Each planet object keeps track of its own angle of rotation.
6
- # @theta Rotation around sun
7
- # @diameter Size of planet
8
- # @distance Distance from sun
9
- # @orbit_speed Orbit speed
10
- def initialize(distance, diameter)
11
- @distance = distance
12
- @diameter = diameter
13
- @theta = 0
14
- @orbit_speed = rand * 0.02 + 0.01
15
- end
16
-
17
- def update
18
- # Increment the angle to rotate
19
- @theta += @orbit_speed
20
- end
21
-
22
- def display
23
- # Before rotation and translation, the state of the matrix is saved with push_matrix.
24
- $app.push_matrix
25
- # Rotate orbit
26
- $app.rotate @theta
27
- # translate out @distance
28
- $app.translate @distance, 0
29
- $app.stroke 0
30
- $app.fill 175
31
- $app.ellipse 0, 0, @diameter, @diameter
32
- # Once the planet is drawn, the matrix is restored with pop_matrix so that the next planet is not affected.
33
- $app.pop_matrix
34
- end
35
-
36
- end
37
-
38
-
39
- class ObjectOrientedSolarSystemSketch < Processing::App
40
-
41
- def setup
42
- smooth
43
- @planets = Array.new(8) { |i| Planet.new(20+i*10, i+8) }
44
- end
45
-
46
- def draw
47
- background 255
48
-
49
- # Drawing the Sun
50
- push_matrix
51
- # Translate to center of window
52
- translate width/2, height/2
53
- stroke 0
54
- fill 255
55
- ellipse 0, 0, 20, 20
56
-
57
- # Drawing all Planets
58
- @planets.each do |p|
59
- p.update
60
- p.display
61
- end
62
-
63
- pop_matrix
64
- end
65
-
66
- end
67
-
68
- ObjectOrientedSolarSystemSketch.new :title => "Object Oriented Solar System", :width => 200, :height => 200
69
-
@@ -1,20 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class HelloWorldImageSketch < Processing::App
4
-
5
- def setup
6
- # the image file must be in the data directory
7
- @img = load_image("mysummervacation.jpg")
8
- end
9
-
10
- def draw
11
- background 0
12
-
13
- #The image function displays the image at a location-in this case the point (0,0).
14
- image @img, 0, 0
15
- end
16
-
17
- end
18
-
19
- HelloWorldImageSketch.new :title => "Hello World Image", :width => 320, :height => 240
20
-
@@ -1,29 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class ImageSpriteSketch < Processing::App
4
-
5
- def setup
6
- @head = load_image("face.jpg") # variable for the image file
7
- @x, @y = 0, width/2 # variables for image location
8
- @rot = 0.0 # variable for image rotation
9
- end
10
-
11
- def draw
12
- background 255
13
-
14
- translate @x, @y
15
- rotate @rot
16
-
17
- # Images can be animated just like regular shapes using variables, translate, rotate, and so on.
18
- image @head, 0, 0
19
- # Adjust variables for animation
20
- @x += 1.0
21
- @rot += 0.02
22
- @x = -@head.width if @x > width + @head.width
23
- end
24
-
25
- end
26
-
27
- ImageSpriteSketch.new :title => "Image Sprite", :width => 200, :height => 200
28
-
29
-
@@ -1,25 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class SwappingImagesSketch < Processing::App
4
-
5
- def setup
6
- @index = 0
7
- @count = 7
8
- # loading the images into the array
9
- @images = (0...@count).map { |i| load_image("animal#{i}.jpg") }
10
- end
11
-
12
- def draw
13
- # displaying one images
14
- image @images[@index], 0, 0
15
- end
16
-
17
- def mouse_pressed
18
- # A new image is picked randomly when the mouse is clicked
19
- @index = rand(@images.size)
20
- end
21
-
22
- end
23
-
24
- SwappingImagesSketch.new :title => "Swapping Images", :width => 200, :height => 200
25
-
@@ -1,22 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class ImageSequence < Processing::App
4
-
5
- def setup
6
- @index = 0
7
- @count = 7
8
- # loading the images into the array
9
- @images = (0...@count).map { |i| load_image("animal#{i}.jpg") }
10
- frame_rate 5
11
- end
12
-
13
- def draw
14
- # displaying one images
15
- image @images[@index], 0, 0
16
- @index = (@index + 1) % @images.size
17
- end
18
-
19
- end
20
-
21
- ImageSequence.new :title => "Image Sequence", :width => 200, :height => 200
22
-
@@ -1,19 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class SettingPixelsSketch < Processing::App
4
-
5
- def setup
6
- # load the pixels array
7
- load_pixels
8
- background 0
9
- # loop through the pixels and set each one to a random greyscale color
10
- pixels.size.times { |i| pixels[i] = color(rand 255) }
11
- # update the pixels on screen
12
- update_pixels
13
- end
14
-
15
-
16
- end
17
-
18
- SettingPixelsSketch.new :title => "Setting Pixels", :width => 200, :height => 200
19
-
@@ -1,29 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class Pixels2dSketch < Processing::App
4
-
5
- def setup
6
- # load the pixels array
7
- load_pixels
8
- # Two loops allow us to visit every column (x) and every row (y).
9
- # Loop through every pixel column
10
- width.times do |x|
11
- # Loop through every pixel row
12
- height.times do |y|
13
- # Use the formula to find the 1D location
14
- # The location in the pixel array is calculated via our formula: 1D pixel location = x + y * width
15
- loc = x + y * width
16
- # We use the even-or-odd-ness of the column number (x) to determine whether the color should be black or white.
17
- pixels[loc] = (x % 2 == 0) ? color(255) : color(0)
18
- end
19
- end
20
- # update the pixels on screen
21
- update_pixels
22
- end
23
-
24
-
25
- end
26
-
27
- Pixels2dSketch.new :title => "Pixels 2d", :width => 200, :height => 200
28
-
29
-
@@ -1,40 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class ImagePixelsSketch < Processing::App
4
-
5
- def setup
6
- @image = load_image 'sunflower.jpg'
7
- end
8
-
9
- def draw
10
- # load the pixels array
11
- load_pixels
12
- # Two loops allow us to visit every column (x) and every row (y).
13
- # Loop through every pixel column
14
- width.times do |x|
15
- # Loop through every pixel row
16
- height.times do |y|
17
- # Use the formula to find the 1D location
18
- loc = x + y * width # The location in the pixel array is calculated via our formula: 1D pixel location = x + y * width
19
-
20
- # The functions red, green, and blue pull out the three color components from a pixel.
21
- r = red(@image.pixels[loc])
22
- g = green(@image.pixels[loc])
23
- b = blue(@image.pixels[loc])
24
-
25
- # Image Processing would go here
26
- # If we were to change the RGB values, we would do it here, before setting the pixel in the display window.
27
-
28
- # Set the display pixel to the image pixel
29
- pixels[loc] = color(r,g,b)
30
- end
31
- end
32
- # update the pixels on screen
33
- update_pixels
34
- end
35
-
36
- end
37
-
38
- ImagePixelsSketch.new :title => "Image Pixels", :width => 200, :height => 200
39
-
40
-
@@ -1,29 +0,0 @@
1
- require 'ruby-processing'
2
-
3
- class ImageBrightnessSketch < Processing::App
4
-
5
- def setup
6
- @image = load_image 'sunflower.jpg'
7
- # Let's grab the red, green and blue component of each pixel of the image to start with.
8
- @image_pixels = @image.pixels.map {|p| [red(p), green(p), blue(p)]}
9
- end
10
-
11
- def draw
12
- # We calculate a multiplier ranging from 0.0 to 8.0 based on mouseX position.
13
- # That multiplier changes the RGB value of each pixel.
14
- adjustment = (mouse_x.to_f / width) * 8.0
15
- load_pixels # load the pixels array
16
-
17
- # And here's a modified Ruby way to do the Java equivalent
18
- pixels.size.times do |i|
19
- pixels[i] = color(*@image_pixels[i].map {|rgb| rgb * adjustment })
20
- end
21
-
22
- update_pixels
23
- end
24
-
25
- end
26
-
27
- ImageBrightnessSketch.new :title => "Image Brightness", :width => 200, :height => 200
28
-
29
-