ruby-processing 2.4.4 → 2.5.0
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.
- checksums.yaml +4 -4
- data/lib/rpextras.jar +0 -0
- data/lib/ruby-processing.rb +8 -6
- data/lib/ruby-processing/app.rb +54 -67
- data/lib/ruby-processing/config.rb +7 -7
- data/lib/ruby-processing/exporters/application_exporter.rb +37 -38
- data/lib/ruby-processing/exporters/base_exporter.rb +34 -37
- data/lib/ruby-processing/exporters/creator.rb +27 -25
- data/lib/ruby-processing/helper_methods.rb +18 -22
- data/lib/ruby-processing/helpers/numeric.rb +5 -6
- data/lib/ruby-processing/helpers/string.rb +11 -20
- data/lib/ruby-processing/library_loader.rb +33 -35
- data/lib/ruby-processing/runner.rb +118 -65
- data/lib/ruby-processing/runners/base.rb +21 -26
- data/lib/ruby-processing/runners/live.rb +3 -4
- data/lib/ruby-processing/runners/run.rb +1 -3
- data/lib/ruby-processing/runners/watch.rb +8 -8
- data/lib/ruby-processing/version.rb +1 -1
- data/lib/templates/application/lib/args.txt.erb +1 -1
- data/lib/templates/application/run.erb +3 -3
- data/library/control_panel/control_panel.rb +29 -29
- data/library/fastmath/fastmath.rb +3 -0
- data/library/file_chooser/file_chooser.rb +11 -13
- data/library/vecmath/vecmath.rb +6 -35
- data/samples/Rakefile +3 -1
- data/samples/configRP5/configRP5.pde +150 -0
- data/samples/contributed/Rakefile +6 -6
- data/samples/contributed/animator.rb +6 -6
- data/samples/contributed/bezier_playground.rb +29 -68
- data/samples/contributed/circle_collision.rb +6 -13
- data/samples/contributed/elegant_ball.rb +14 -17
- data/samples/contributed/empathy.rb +8 -5
- data/samples/contributed/fibonacci_sphere.rb +10 -49
- data/samples/contributed/full_screen.rb +1 -1
- data/samples/contributed/grapher.rb +10 -9
- data/samples/contributed/gravity.rb +11 -16
- data/samples/contributed/jwishy.rb +18 -20
- data/samples/contributed/quadraticvertex.rb +26 -26
- data/samples/external_library/java_processing/custom/landscape.rb +6 -4
- data/samples/external_library/java_processing/hemesh/twin_iso.rb +69 -71
- data/samples/external_library/java_processing/pbox2d/bumpy_surface_noise.rb +57 -0
- data/samples/external_library/java_processing/pbox2d/contact_test.rb +23 -0
- data/samples/external_library/java_processing/pbox2d/data/java_args.txt +2 -0
- data/samples/external_library/java_processing/pbox2d/library/custom_shape/custom_shape.rb +158 -0
- data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb +212 -0
- data/samples/external_library/java_processing/pbox2d/library/surface/surface.rb +154 -0
- data/samples/external_library/java_processing/pbox2d/liquidy.rb +58 -0
- data/samples/external_library/java_processing/pbox2d/polygons.rb +58 -0
- data/samples/external_library/java_processing/toxiclibs/library/vbo/vbo.rb +52 -0
- data/samples/external_library/java_processing/toxiclibs/model_align.rb +9 -16
- data/samples/processing_app/basics/color/color_wheel.rb +1 -1
- data/samples/processing_app/basics/form/regular_polygon.rb +2 -2
- data/samples/processing_app/basics/form/rgb_cube.rb +2 -2
- data/samples/processing_app/basics/form/shape_primitives.rb +1 -1
- data/samples/processing_app/basics/form/star.rb +2 -2
- data/samples/processing_app/basics/input/clock.rb +21 -16
- data/samples/processing_app/basics/input/storing_input.rb +6 -6
- data/samples/processing_app/basics/math/additive_wave.rb +1 -1
- data/samples/processing_app/basics/math/sine.rb +2 -2
- data/samples/processing_app/basics/math/sine_cosine.rb +1 -1
- data/samples/processing_app/basics/math/sine_wave.rb +1 -1
- data/samples/processing_app/basics/objects/inheritance.rb +2 -0
- data/samples/processing_app/basics/objects/inheritance_two.rb +88 -0
- data/samples/processing_app/basics/objects/module.rb +89 -0
- data/samples/processing_app/{library/vecmath/drawolver.rb → basics/objects/module_two.rb} +1 -1
- data/samples/processing_app/basics/objects/multiple_constructors.rb +5 -0
- data/samples/processing_app/basics/objects/struct.rb +38 -0
- data/samples/processing_app/basics/structure/recursion2.rb +1 -1
- data/samples/processing_app/basics/transform/birds.rb +7 -10
- data/samples/processing_app/basics/transform/library/bird/bird.rb +3 -3
- data/samples/processing_app/basics/transform/rotate.rb +1 -1
- data/samples/processing_app/basics/transform/rotate1.rb +1 -1
- data/samples/processing_app/basics/transform/rotate_x_y.rb +1 -1
- data/samples/processing_app/demos/graphics/bezier_patch.rb +1 -38
- data/samples/processing_app/demos/graphics/trefoil.rb +50 -40
- data/samples/processing_app/demos/graphics/wiggling.rb +36 -38
- data/samples/processing_app/demos/performance/cubic_grid_retained.rb +14 -14
- data/samples/processing_app/demos/performance/esfera.rb +27 -39
- data/samples/processing_app/demos/performance/text_rendering.rb +1 -1
- data/samples/processing_app/library/fastmath/clock.rb +44 -0
- data/samples/processing_app/library/pdf/complex_3D.rb +26 -24
- data/samples/processing_app/library/vecmath/{Rakefile → arcball/Rakefile} +6 -6
- data/samples/processing_app/library/vecmath/arcball/arcball_box.rb +23 -0
- data/samples/processing_app/library/vecmath/arcball/arcball_radius.rb +23 -0
- data/samples/processing_app/library/vecmath/arcball/arcball_shape.rb +29 -0
- data/samples/processing_app/library/vecmath/{README.txt → vec2d/README.txt} +0 -0
- data/samples/processing_app/library/vecmath/vec2d/Rakefile +30 -0
- data/samples/processing_app/library/vecmath/{acceleration_with_vectors.rb → vec2d/acceleration_with_vectors.rb} +4 -5
- data/samples/processing_app/library/vecmath/{bouncing_ball.rb → vec2d/bouncing_ball.rb} +9 -15
- data/samples/processing_app/library/vecmath/{circle_collision.rb → vec2d/circle_collision.rb} +46 -51
- data/samples/processing_app/library/vecmath/{data → vec2d/data}/java_args.txt +0 -0
- data/samples/processing_app/library/vecmath/{data → vec2d/data}/sprite.png +0 -0
- data/samples/processing_app/library/vecmath/{data → vec2d/data}/texture.png +0 -0
- data/samples/processing_app/library/vecmath/{flocking.rb → vec2d/flocking.rb} +3 -6
- data/samples/processing_app/library/vecmath/{library → vec2d/library}/flock/flock.rb +47 -67
- data/samples/processing_app/library/vecmath/{library → vec2d/library}/particle/particle_system.rb +5 -5
- data/samples/processing_app/library/vecmath/vec2d/library/tile/tile.rb +85 -0
- data/samples/processing_app/library/vecmath/{morph.rb → vec2d/morph.rb} +17 -16
- data/samples/processing_app/library/vecmath/{multiple_particle_systems.rb → vec2d/multiple_particle_systems.rb} +11 -28
- data/samples/processing_app/library/vecmath/{particle_system_pshape.rb → vec2d/particle_system_pshape.rb} +4 -6
- data/samples/processing_app/library/vecmath/vec2d/penrose.rb +71 -0
- data/samples/processing_app/library/vecmath/{reflection1.rb → vec2d/reflection1.rb} +6 -6
- data/samples/processing_app/library/vecmath/{seeking_neural.rb → vec2d/seeking_neural.rb} +12 -16
- data/samples/processing_app/library/vecmath/{simple_particle_system.rb → vec2d/simple_particle_system.rb} +8 -12
- data/samples/processing_app/library/vecmath/{smoke_particle_system.rb → vec2d/smoke_particle_system.rb} +8 -13
- data/samples/processing_app/library/vecmath/{vector_math.rb → vec2d/vector_math.rb} +0 -0
- data/samples/processing_app/library/vecmath/{library/wiggler/wiggler.rb → vec2d/wiggle_pshape.rb} +28 -4
- data/samples/processing_app/library/vecmath/vec3d/Rakefile +30 -0
- data/samples/processing_app/library/vecmath/vec3d/drawolver.rb +86 -0
- data/samples/processing_app/library/vecmath/vec3d/frame_of_reference.rb +103 -0
- data/samples/processing_app/library/vecmath/{hilbert_fractal.rb → vec3d/hilbert_fractal.rb} +5 -33
- data/samples/processing_app/library/vecmath/vec3d/library/geometry/geometry.rb +3 -0
- data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/cylinder.rb +44 -0
- data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/mat4.rb +28 -0
- data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/plane.rb +60 -0
- data/samples/processing_app/library/vecmath/{library → vec3d/library}/hilbert/hilbert.rb +14 -17
- data/samples/processing_app/library/vecmath/{retained_menger.rb → vec3d/retained_menger.rb} +20 -55
- data/samples/processing_app/topics/advanced_data/Rakefile +6 -6
- data/samples/processing_app/topics/advanced_data/counting_words.rb +7 -7
- data/samples/processing_app/topics/advanced_data/data/data.xml +0 -15
- data/samples/processing_app/topics/advanced_data/data/struct_data.yml +5 -0
- data/samples/processing_app/topics/advanced_data/library/bubble/bubble.rb +8 -8
- data/samples/processing_app/topics/advanced_data/load_save_XML.rb +41 -42
- data/samples/processing_app/topics/advanced_data/load_save_json.rb +11 -11
- data/samples/processing_app/topics/advanced_data/load_save_struct_yaml.rb +22 -23
- data/samples/processing_app/topics/advanced_data/load_save_table.rb +12 -12
- data/samples/processing_app/topics/advanced_data/load_save_yaml.rb +10 -12
- data/samples/processing_app/topics/advanced_data/regex.rb +5 -6
- data/samples/processing_app/topics/advanced_data/threads.rb +27 -27
- data/samples/processing_app/topics/advanced_data/threads_two.rb +3 -2
- data/samples/processing_app/topics/advanced_data/word_frequency.rb +18 -16
- data/samples/processing_app/topics/advanced_data/yahoo_weather.rb +6 -5
- data/samples/processing_app/topics/animation/animated_sprite.rb +9 -7
- data/samples/processing_app/topics/animation/sequential.rb +19 -19
- data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +1 -1
- data/samples/processing_app/topics/cellular_automata/wolfram.rb +1 -1
- data/samples/processing_app/topics/create_shapes/begin_end_contour.rb +1 -1
- data/samples/processing_app/topics/create_shapes/library/wiggler/wiggler.rb +4 -4
- data/samples/processing_app/topics/create_shapes/particle_system_pshape.rb +2 -2
- data/samples/processing_app/topics/create_shapes/path_pshape.rb +1 -1
- data/samples/processing_app/topics/create_shapes/polygon_pshape_oo3.rb +1 -1
- data/samples/processing_app/topics/create_shapes/polygon_shape.rb +3 -3
- data/samples/processing_app/topics/file_io/load_file1.rb +1 -1
- data/samples/processing_app/topics/file_io/save_frames.rb +5 -5
- data/samples/processing_app/topics/file_io/save_one_image.rb +2 -2
- data/samples/processing_app/topics/file_io/tile_images.rb +1 -1
- data/samples/processing_app/topics/gui/scrollbar.rb +3 -3
- data/samples/processing_app/topics/image_processing/blending.rb +13 -13
- data/samples/processing_app/topics/image_processing/blur.rb +1 -1
- data/samples/processing_app/topics/image_processing/brightness.rb +1 -1
- data/samples/processing_app/topics/image_processing/convolution.rb +1 -1
- data/samples/processing_app/topics/image_processing/edge_detection.rb +4 -4
- data/samples/processing_app/topics/image_processing/explode.rb +1 -1
- data/samples/processing_app/topics/image_processing/extrusion.rb +1 -1
- data/samples/processing_app/topics/image_processing/histogram.rb +1 -1
- data/samples/processing_app/topics/image_processing/linear_image.rb +1 -1
- data/samples/processing_app/topics/image_processing/pixel_array.rb +1 -1
- data/samples/processing_app/topics/image_processing/zoom.rb +2 -2
- data/samples/processing_app/topics/lsystems/Rakefile +6 -6
- data/samples/processing_app/topics/lsystems/chequer.rb +4 -10
- data/samples/processing_app/topics/lsystems/csplant.rb +25 -25
- data/samples/processing_app/topics/lsystems/cstest.rb +9 -4
- data/samples/processing_app/topics/lsystems/david_tour.rb +14 -16
- data/samples/processing_app/topics/lsystems/koch.rb +8 -18
- data/samples/processing_app/topics/lsystems/library/cs_grammar/cs_grammar.rb +18 -24
- data/samples/processing_app/topics/lsystems/library/grammar/grammar.rb +7 -9
- data/samples/processing_app/topics/lsystems/library/koch/koch_fractal.rb +75 -94
- data/samples/processing_app/topics/lsystems/library/stochastic_grammar/stochastic_grammar.rb +11 -13
- data/samples/processing_app/topics/lsystems/mpeano.rb +29 -32
- data/samples/processing_app/topics/lsystems/peano.rb +19 -21
- data/samples/processing_app/topics/lsystems/penrose.rb +31 -37
- data/samples/processing_app/topics/lsystems/penrose_snowflake.rb +10 -15
- data/samples/processing_app/topics/lsystems/pentagonal.rb +20 -23
- data/samples/processing_app/topics/lsystems/snake_kolam.rb +13 -13
- data/samples/processing_app/topics/lsystems/stochastic_test.rb +25 -28
- data/samples/processing_app/topics/lsystems/three_d_tree.rb +25 -24
- data/samples/processing_app/topics/motion/bouncy_bubbles.rb +17 -17
- data/samples/processing_app/topics/motion/cubes_in_cube.rb +1 -3
- data/samples/processing_app/topics/motion/library/cube/cube.rb +2 -2
- data/samples/processing_app/topics/motion/reflection2.rb +1 -1
- data/samples/processing_app/topics/shaders/blur_filter.rb +3 -3
- data/samples/processing_app/topics/shaders/bw_shader.rb +3 -3
- data/samples/processing_app/topics/shaders/conway.rb +5 -5
- data/samples/processing_app/topics/shaders/deform.rb +5 -5
- data/samples/processing_app/topics/shaders/edge_detect.rb +3 -5
- data/samples/processing_app/topics/shaders/glossy_fish_eye.rb +15 -21
- data/samples/processing_app/topics/shaders/glsl_heightmap_noise.rb +21 -19
- data/samples/processing_app/topics/shaders/image_mask.rb +6 -6
- data/samples/processing_app/topics/shaders/landscape.rb +4 -4
- data/samples/processing_app/topics/shaders/monjori.rb +15 -15
- data/samples/processing_app/topics/shaders/nebula.rb +3 -3
- data/samples/processing_app/topics/shaders/sep_blur.rb +15 -15
- data/samples/processing_app/topics/shaders/toon_shading.rb +2 -2
- data/samples/processing_app/topics/simulate/chain.rb +16 -14
- data/samples/processing_app/topics/simulate/smoke_particle_system.rb +3 -3
- data/samples/processing_app/topics/vectors/acceleration_with_vectors.rb +3 -2
- data/samples/processing_app/topics/vectors/bouncing_ball.rb +1 -0
- data/samples/processing_app/topics/vectors/vector_math.rb +2 -1
- data/vendors/Rakefile +15 -3
- metadata +99 -86
- data/.gitignore +0 -13
- data/.travis.yml +0 -6
- data/.yardopts +0 -5
- data/CHANGELOG +0 -316
- data/CONTRIBUTING.md +0 -35
- data/Gemfile +0 -6
- data/LICENSE.md +0 -39
- data/README.md +0 -119
- data/Rakefile +0 -37
- data/bin/install_jruby_complete +0 -13
- data/lib/ruby-processing/exporters/exporters.rb +0 -7
- data/library/vecmath/lib/arcball.rb +0 -64
- data/library/vecmath/lib/quaternion.rb +0 -62
- data/library/vecmath/lib/vec.rb +0 -232
- data/ruby-processing.gemspec +0 -54
- data/samples/processing_app/library/pdf/.gitignore +0 -1
- data/samples/processing_app/library/vecmath/retained_test.rb +0 -65
- data/samples/processing_app/library/vecmath/retained_test2.rb +0 -65
- data/samples/processing_app/library/vecmath/wiggle_pshape.rb +0 -22
- data/test/README.md +0 -6
- data/test/basic.rb +0 -14
- data/test/draw_ex.rb +0 -12
- data/test/graphics.rb +0 -7
- data/test/p2d.rb +0 -14
- data/test/p3d.rb +0 -14
- data/test/rp5_test.rb +0 -86
- data/test/setup_ex.rb +0 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Regular Expression example
|
|
3
|
-
# by Martin Prout.
|
|
4
|
-
#
|
|
3
|
+
# by Martin Prout.
|
|
4
|
+
#
|
|
5
5
|
# This uses ruby scan
|
|
6
6
|
#
|
|
7
7
|
# Here we'll load the raw HTML from a URL and search for web-links
|
|
@@ -11,11 +11,11 @@ attr_reader :links, :url
|
|
|
11
11
|
|
|
12
12
|
def setup
|
|
13
13
|
size(360, 480)
|
|
14
|
-
@url =
|
|
14
|
+
@url = 'http://processing.org'
|
|
15
15
|
# Load the links
|
|
16
16
|
@links = load_links(url)
|
|
17
17
|
links.uniq! # get rid of the duplicates
|
|
18
|
-
text_font(create_font(
|
|
18
|
+
text_font(create_font('Georgia', 16))
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def draw
|
|
@@ -43,5 +43,4 @@ def load_links(s)
|
|
|
43
43
|
[\w=]*
|
|
44
44
|
)?
|
|
45
45
|
/ix)
|
|
46
|
-
end
|
|
47
|
-
|
|
46
|
+
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
#
|
|
2
2
|
# Thread function example
|
|
3
|
-
# by Martin Prout (after a Dan Schiffman vanilla processing version).
|
|
4
|
-
#
|
|
3
|
+
# by Martin Prout (after a Dan Schiffman vanilla processing version).
|
|
4
|
+
#
|
|
5
5
|
# This example demonstrates how to use Thread.new to spawn
|
|
6
6
|
# a process that happens outside of the main animation thread.
|
|
7
7
|
#
|
|
8
|
-
# When Thread.new is called, the draw
|
|
8
|
+
# When Thread.new is called, the draw loop will continue while
|
|
9
9
|
# the code inside the block passed to the thread will operate
|
|
10
10
|
# in the background.
|
|
11
11
|
#
|
|
@@ -15,19 +15,19 @@
|
|
|
15
15
|
# This sketch will load data from all of these URLs in a separate thread
|
|
16
16
|
|
|
17
17
|
URLS = [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
'http://processing.org',
|
|
19
|
+
'http://www.processing.org/exhibition/',
|
|
20
|
+
'http://www.processing.org/reference/',
|
|
21
|
+
'http://www.processing.org/reference/libraries',
|
|
22
|
+
'http://www.processing.org/reference/tools',
|
|
23
|
+
'http://www.processing.org/reference/environment',
|
|
24
|
+
'http://www.processing.org/learning/',
|
|
25
|
+
'http://www.processing.org/learning/basics/',
|
|
26
|
+
'http://www.processing.org/learning/topics/',
|
|
27
|
+
'http://www.processing.org/learning/gettingstarted/',
|
|
28
|
+
'http://www.processing.org/download/',
|
|
29
|
+
'http://www.processing.org/shop/',
|
|
30
|
+
'http://www.processing.org/about/'
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
|
|
@@ -42,14 +42,14 @@ end
|
|
|
42
42
|
|
|
43
43
|
def draw
|
|
44
44
|
background(0)
|
|
45
|
-
|
|
46
|
-
# If we're not finished draw a
|
|
45
|
+
|
|
46
|
+
# If we're not finished draw a 'loading bar'
|
|
47
47
|
# This is so that we can see the progress of the thread
|
|
48
48
|
# This would not be necessary in a sketch where you wanted to load data in the background
|
|
49
|
-
# and hide this from the user, allowing the draw
|
|
49
|
+
# and hide this from the user, allowing the draw loop to simply continue
|
|
50
50
|
if (!finished)
|
|
51
51
|
stroke(255)
|
|
52
|
-
no_fill
|
|
52
|
+
no_fill
|
|
53
53
|
rect(width/2-150, height/2, 300, 10)
|
|
54
54
|
fill(255)
|
|
55
55
|
# The size of the rectangle is mapped to the percentage completed
|
|
@@ -58,29 +58,29 @@ def draw
|
|
|
58
58
|
text_size(16)
|
|
59
59
|
text_align(CENTER)
|
|
60
60
|
fill(255)
|
|
61
|
-
text(
|
|
61
|
+
text('Loading', width/2, height/2+30)
|
|
62
62
|
else
|
|
63
63
|
# The thread is complete!
|
|
64
64
|
text_align(CENTER)
|
|
65
65
|
text_size(24)
|
|
66
66
|
fill(255)
|
|
67
|
-
text(
|
|
67
|
+
text('Finished loading. Click the mouse to load again.', width/2, height/2)
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
def load_data
|
|
72
|
-
Thread.new {
|
|
72
|
+
Thread.new {
|
|
73
73
|
# The thread is not completed
|
|
74
74
|
@finished = false
|
|
75
75
|
@percent = 0
|
|
76
76
|
# Reset the data to empty
|
|
77
|
-
@all_data =
|
|
77
|
+
@all_data = ''
|
|
78
78
|
URLS.each_with_index do |url, i|
|
|
79
79
|
lines = load_strings(url)
|
|
80
80
|
all_txt = lines.join(' ')
|
|
81
81
|
words = all_txt.scan(/\w+/)
|
|
82
82
|
words.each do |word|
|
|
83
|
-
word.strip!
|
|
83
|
+
word.strip!
|
|
84
84
|
word.downcase!
|
|
85
85
|
end
|
|
86
86
|
words.sort!
|
|
@@ -92,5 +92,5 @@ def load_data
|
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
def mouse_pressed # guard against calling load_data when running
|
|
95
|
-
load_data unless !finished
|
|
95
|
+
load_data unless !finished
|
|
96
96
|
end
|
|
@@ -16,7 +16,8 @@ def setup
|
|
|
16
16
|
@curr = 0
|
|
17
17
|
thread do # supply a block in ruby-processing rather than use reflection
|
|
18
18
|
FRAMES.times do |i|
|
|
19
|
-
frames << load_image("a#{
|
|
19
|
+
frames << load_image("a#{i.to_s.rjust(3, "0")} copy.jpg") # ruby syntax
|
|
20
|
+
#frames << load_image("a#{nf(i, 3)} copy.jpg") # processing function nf
|
|
20
21
|
@curr = i
|
|
21
22
|
delay(75) #just slows down this thread - the main draw cycle is unaffected...
|
|
22
23
|
end
|
|
@@ -30,7 +31,7 @@ end
|
|
|
30
31
|
|
|
31
32
|
def draw
|
|
32
33
|
if (done_loading)
|
|
33
|
-
background(0)
|
|
34
|
+
background(0)
|
|
34
35
|
image(frames[curr], 0, 0)
|
|
35
36
|
@curr += 1
|
|
36
37
|
if (curr > 115)
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
#
|
|
2
2
|
# After a HashMap example
|
|
3
|
-
# by Daniel Shiffman.
|
|
4
|
-
#
|
|
5
|
-
# This example demonstrates how to use a Hash to store
|
|
6
|
-
# a collection of objects referenced by a key. This is much like an array,
|
|
3
|
+
# by Daniel Shiffman.
|
|
4
|
+
#
|
|
5
|
+
# This example demonstrates how to use a Hash to store
|
|
6
|
+
# a collection of objects referenced by a key. This is much like an array,
|
|
7
7
|
# only instead of accessing elements with a numeric index, we use a String.
|
|
8
8
|
# If you are familiar with associative arrays from other languages,
|
|
9
9
|
# this is the same idea.
|
|
10
10
|
#
|
|
11
11
|
# The Processing classes IntHash, FloatHash, and StringHash offer a simple
|
|
12
|
-
# way of pairing Strings with numbers or other Strings. But are probably of
|
|
12
|
+
# way of pairing Strings with numbers or other Strings. But are probably of
|
|
13
13
|
# less interest to rubyists.
|
|
14
14
|
#
|
|
15
|
-
# In this example, words that appear in one book (Dracula) are colored white
|
|
15
|
+
# In this example, words that appear in one book (Dracula) are colored white
|
|
16
16
|
# whilst words in the other book (Frankenstein) are colored black.
|
|
17
17
|
#
|
|
18
18
|
load_library 'word'
|
|
19
19
|
|
|
20
|
-
DRACULA =
|
|
21
|
-
FRANKENSTEIN =
|
|
20
|
+
DRACULA = 'dracula.txt'
|
|
21
|
+
FRANKENSTEIN = 'frankenstein.txt'
|
|
22
|
+
DRAC = /#{DRACULA}/
|
|
23
|
+
FRANK = /#{FRANKENSTEIN}/
|
|
22
24
|
|
|
23
25
|
attr_accessor :words
|
|
24
26
|
|
|
@@ -31,7 +33,7 @@ def setup
|
|
|
31
33
|
load_file(DRACULA)
|
|
32
34
|
load_file(FRANKENSTEIN)
|
|
33
35
|
# Create the font
|
|
34
|
-
text_font(create_font(
|
|
36
|
+
text_font(create_font('Georgia', 24))
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
def draw
|
|
@@ -47,29 +49,29 @@ end
|
|
|
47
49
|
|
|
48
50
|
# Load a file
|
|
49
51
|
def load_file(filename)
|
|
50
|
-
tokens = File.open(data_path(filename),
|
|
52
|
+
tokens = File.open(data_path(filename), 'r'){ |file| file.read.scan(/[\w'-]+/)}
|
|
51
53
|
tokens.each do |s|
|
|
52
54
|
s = s.downcase
|
|
53
55
|
# Is the word in the HashMap
|
|
54
|
-
if (words.
|
|
56
|
+
if (words.key?(s))
|
|
55
57
|
# Get the word object and increase the count
|
|
56
58
|
# We access objects from a Hash via its key, the String
|
|
57
59
|
w = words[s]
|
|
58
60
|
# Which book am I loading?
|
|
59
|
-
if
|
|
61
|
+
if DRAC =~ filename
|
|
60
62
|
w.increment_dracula
|
|
61
|
-
elsif
|
|
63
|
+
elsif FRANK =~ filename
|
|
62
64
|
w.increment_franken
|
|
63
65
|
end
|
|
64
66
|
else
|
|
65
67
|
# Otherwise make a new word
|
|
66
68
|
w = Word.new(s)
|
|
67
|
-
# And add entry to the Hash
|
|
69
|
+
# And add entry to the Hash
|
|
68
70
|
# The key for us is the String and the value is the Word object
|
|
69
71
|
words[s] = w
|
|
70
|
-
if
|
|
72
|
+
if DRAC =~ filename
|
|
71
73
|
w.increment_dracula
|
|
72
|
-
elsif
|
|
74
|
+
elsif FRANK =~ filename
|
|
73
75
|
w.increment_franken
|
|
74
76
|
end
|
|
75
77
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Loading XML Data
|
|
3
3
|
# by Daniel Shiffman.
|
|
4
4
|
#
|
|
5
|
-
# This example demonstrates how to use loadXML
|
|
5
|
+
# This example demonstrates how to use loadXML
|
|
6
6
|
# to retrieve data from an XML document via a URL
|
|
7
7
|
#
|
|
8
8
|
|
|
@@ -11,7 +11,8 @@ attr_reader :zip, :weather, :temperature
|
|
|
11
11
|
def setup
|
|
12
12
|
size(600, 360)
|
|
13
13
|
@zip = 10003
|
|
14
|
-
font = create_font(
|
|
14
|
+
font = create_font('Times Roman', 28)
|
|
15
|
+
# font = create_font('Merriweather-Light.ttf', 28)
|
|
15
16
|
text_font(font)
|
|
16
17
|
|
|
17
18
|
# The URL for the XML document
|
|
@@ -21,11 +22,11 @@ def setup
|
|
|
21
22
|
xml = loadXML(url)
|
|
22
23
|
|
|
23
24
|
# Grab the element we want
|
|
24
|
-
forecast = xml.get_child(
|
|
25
|
+
forecast = xml.get_child('channel').get_child('item').get_child('yweather:forecast')
|
|
25
26
|
|
|
26
27
|
# Get the attributes we want
|
|
27
|
-
@temperature = forecast.get_int(
|
|
28
|
-
@weather = forecast.get_string(
|
|
28
|
+
@temperature = forecast.get_int('high')
|
|
29
|
+
@weather = forecast.get_string('text')
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
def draw
|
|
@@ -16,22 +16,22 @@ def setup
|
|
|
16
16
|
size(640, 360)
|
|
17
17
|
background(255, 204, 0)
|
|
18
18
|
frame_rate(24)
|
|
19
|
-
@animation1 = Animation.new(
|
|
20
|
-
@animation2 = Animation.new(
|
|
19
|
+
@animation1 = Animation.new('PT_Shifty_', 38)
|
|
20
|
+
@animation2 = Animation.new('PT_Teddy_', 60)
|
|
21
21
|
@ypos = height * 0.25
|
|
22
22
|
@xpos = 0
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def draw
|
|
26
26
|
dx = mouse_x - xpos
|
|
27
|
-
@xpos = xpos + dx/DRAG
|
|
27
|
+
@xpos = xpos + dx / DRAG
|
|
28
28
|
# Display the sprite at the position xpos, ypos
|
|
29
|
-
if
|
|
29
|
+
if mouse_pressed?
|
|
30
30
|
background(153, 153, 0)
|
|
31
|
-
animation1.display(xpos-animation1.get_width/2, ypos)
|
|
31
|
+
animation1.display(xpos - animation1.get_width / 2, ypos)
|
|
32
32
|
else
|
|
33
33
|
background(255, 204, 0)
|
|
34
|
-
animation2.display(xpos-animation2.get_width/2, ypos)
|
|
34
|
+
animation2.display(xpos - animation2.get_width / 2, ypos)
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -41,7 +41,9 @@ class Animation
|
|
|
41
41
|
def initialize(image_prefix, count)
|
|
42
42
|
@image_count = count
|
|
43
43
|
@frame = 0
|
|
44
|
-
@images = (0 ... image_count).map{
|
|
44
|
+
@images = (0 ... image_count).map {
|
|
45
|
+
|i| load_image(format('%s%04d%s', image_prefix, i, '.gif'))
|
|
46
|
+
}
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
def display(xpos, ypos)
|
|
@@ -8,34 +8,34 @@
|
|
|
8
8
|
|
|
9
9
|
NUM_FRAMES = 12 # The number of frames in the animation
|
|
10
10
|
attr_reader :frame, :images
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
def setup
|
|
13
13
|
size(640, 360)
|
|
14
14
|
frame_rate(24)
|
|
15
15
|
@frame = 0
|
|
16
16
|
@images = []
|
|
17
|
-
images <<
|
|
18
|
-
images <<
|
|
19
|
-
images <<
|
|
20
|
-
images <<
|
|
21
|
-
images <<
|
|
22
|
-
images <<
|
|
23
|
-
images <<
|
|
24
|
-
images <<
|
|
25
|
-
images <<
|
|
26
|
-
images <<
|
|
27
|
-
images <<
|
|
28
|
-
images <<
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def draw
|
|
17
|
+
images << load_image('PT_anim0000.gif')
|
|
18
|
+
images << load_image('PT_anim0001.gif')
|
|
19
|
+
images << load_image('PT_anim0002.gif')
|
|
20
|
+
images << load_image('PT_anim0003.gif')
|
|
21
|
+
images << load_image('PT_anim0004.gif')
|
|
22
|
+
images << load_image('PT_anim0005.gif')
|
|
23
|
+
images << load_image('PT_anim0006.gif')
|
|
24
|
+
images << load_image('PT_anim0007.gif')
|
|
25
|
+
images << load_image('PT_anim0008.gif')
|
|
26
|
+
images << load_image('PT_anim0009.gif')
|
|
27
|
+
images << load_image('PT_anim0010.gif')
|
|
28
|
+
images << load_image('PT_anim0011.gif')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def draw
|
|
32
32
|
background(0)
|
|
33
33
|
@frame = (frame + 1) % NUM_FRAMES # Use % to cycle through frames
|
|
34
34
|
offset = 0
|
|
35
|
-
(-100 ... width).step(images[0].width) do |i|
|
|
36
|
-
image(images[(frame+offset) % NUM_FRAMES], i, -20)
|
|
35
|
+
(-100 ... width).step(images[0].width) do |i|
|
|
36
|
+
image(images[(frame + offset) % NUM_FRAMES], i, -20)
|
|
37
37
|
offset += 2
|
|
38
|
-
image(images[(frame+offset) % NUM_FRAMES], i, height/2)
|
|
38
|
+
image(images[(frame + offset) % NUM_FRAMES], i, height / 2)
|
|
39
39
|
offset += 2
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -29,7 +29,7 @@ class CA
|
|
|
29
29
|
# Reset to generation 0
|
|
30
30
|
def restart
|
|
31
31
|
@cells = Array.new(width / SCL, 0)
|
|
32
|
-
cells[cells.length/2] = 1 # We arbitrarily start with just the middle cell having a state of
|
|
32
|
+
cells[cells.length/2] = 1 # We arbitrarily start with just the middle cell having a state of '1'
|
|
33
33
|
@generation = 0
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -8,9 +8,9 @@ class Wiggler
|
|
|
8
8
|
@x = width/2
|
|
9
9
|
@y = height/2
|
|
10
10
|
@yoff = 0
|
|
11
|
-
# The
|
|
11
|
+
# The 'original' locations of the vertices make up a circle
|
|
12
12
|
@original = []
|
|
13
|
-
(0 ...
|
|
13
|
+
(0 ... TAU).step(0.2) do |a|
|
|
14
14
|
v = PVector.from_angle(a)
|
|
15
15
|
v.mult(100)
|
|
16
16
|
original << v
|
|
@@ -32,9 +32,9 @@ class Wiggler
|
|
|
32
32
|
@xoff = 0
|
|
33
33
|
# Apply an offset to each vertex
|
|
34
34
|
(0 ... s.get_vertex_count).each do |i|
|
|
35
|
-
# Calculate a new vertex location based on noise around
|
|
35
|
+
# Calculate a new vertex location based on noise around 'original' location
|
|
36
36
|
pos = original[i]
|
|
37
|
-
a =
|
|
37
|
+
a = TAU*noise(xoff,yoff)
|
|
38
38
|
r = PVector.from_angle(a)
|
|
39
39
|
r.mult(4)
|
|
40
40
|
r.add(pos)
|
|
@@ -12,7 +12,7 @@ attr_reader :ps
|
|
|
12
12
|
def setup
|
|
13
13
|
size(640, 360, P2D)
|
|
14
14
|
# Load the image
|
|
15
|
-
sprite = loadImage(
|
|
15
|
+
sprite = loadImage('sprite.png')
|
|
16
16
|
# A new particle system with 10,000 particles
|
|
17
17
|
@ps = ParticleSystem.new(width, height, sprite, 10000)
|
|
18
18
|
# Writing to the depth buffer is disabled to avoid rendering
|
|
@@ -32,7 +32,7 @@ def draw
|
|
|
32
32
|
# Display frame rate
|
|
33
33
|
fill(255, 0, 255)
|
|
34
34
|
text_size(16)
|
|
35
|
-
text(
|
|
35
|
+
text('Frame rate: #{format('%.2f', frame_rate)}', 10, 20)
|
|
36
36
|
|
|
37
37
|
end
|
|
38
38
|
|