ruby-processing 2.6.2 → 2.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rpextras.jar +0 -0
- data/lib/ruby-processing.rb +5 -8
- data/lib/ruby-processing/app.rb +26 -27
- data/lib/ruby-processing/config.rb +0 -2
- data/lib/ruby-processing/exporters/application_exporter.rb +1 -1
- data/lib/ruby-processing/exporters/base_exporter.rb +1 -1
- data/lib/ruby-processing/exporters/creator.rb +11 -11
- data/lib/ruby-processing/helper_methods.rb +33 -31
- data/lib/ruby-processing/helpers/numeric.rb +1 -1
- data/lib/ruby-processing/helpers/range.rb +11 -0
- data/lib/ruby-processing/library_loader.rb +11 -16
- data/lib/ruby-processing/runner.rb +22 -24
- data/lib/ruby-processing/runners/watch.rb +1 -1
- data/lib/ruby-processing/version.rb +1 -1
- data/library/boids/boids.rb +39 -70
- data/library/control_panel/control_panel.rb +3 -3
- data/samples/contributed/circle_collision.rb +3 -3
- data/samples/contributed/fern.rb +7 -10
- data/samples/contributed/fibonacci_sphere.rb +2 -2
- data/samples/contributed/full_screen.rb +23 -22
- data/samples/contributed/grapher.rb +3 -3
- data/samples/contributed/gravity.rb +1 -1
- data/samples/contributed/mandelbrot.rb +10 -13
- data/samples/external_library/java_processing/box2d_processing/bumpy_surface_noise.rb +1 -1
- data/samples/external_library/java_processing/box2d_processing/library/custom_shape/custom_shape.rb +2 -2
- data/samples/external_library/java_processing/box2d_processing/library/particle_system/particle_system.rb +1 -1
- data/samples/external_library/java_processing/box2d_processing/library/surface/surface.rb +2 -2
- data/samples/external_library/java_processing/box2d_processing/liquidy.rb +1 -1
- data/samples/external_library/java_processing/fisica/bubbles.rb +2 -2
- data/samples/external_library/java_processing/fisica/joints.rb +4 -4
- data/samples/external_library/java_processing/generative_design/node_spring_attractor.rb +2 -2
- data/samples/external_library/java_processing/geomerative/hello_world_rotate_firstletter.rb +7 -7
- data/samples/external_library/java_processing/hemesh/twin_iso.rb +3 -3
- data/samples/external_library/java_processing/pbox2d/bumpy_surface_noise.rb +1 -1
- data/samples/external_library/java_processing/pbox2d/library/custom_shape/custom_shape.rb +2 -2
- data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb +1 -1
- data/samples/external_library/java_processing/pbox2d/library/surface/surface.rb +2 -2
- data/samples/external_library/java_processing/pbox2d/liquidy.rb +1 -1
- data/samples/external_library/java_processing/peasy_cam/library/hilbert/hilbert.rb +4 -4
- data/samples/external_library/ruby_gem/draw_test.rb +2 -2
- data/samples/external_library/ruby_gem/game_of_life.rb +3 -3
- data/samples/processing_app/basics/arrays/array_objects.rb +2 -2
- data/samples/processing_app/basics/color/hue.rb +1 -1
- data/samples/processing_app/basics/control/conditionals1.rb +5 -24
- data/samples/processing_app/basics/control/conditionals2.rb +1 -1
- data/samples/processing_app/basics/form/bezier_ellipse.rb +1 -1
- data/samples/processing_app/basics/form/brick_tower.rb +4 -8
- data/samples/processing_app/basics/form/regular_polygon.rb +1 -1
- data/samples/processing_app/basics/form/star.rb +1 -1
- data/samples/processing_app/basics/form/triangle_strip.rb +1 -1
- data/samples/processing_app/basics/input/storing_input.rb +1 -1
- data/samples/processing_app/basics/lights/spot.rb +1 -1
- data/samples/processing_app/basics/math/additive_wave.rb +2 -2
- data/samples/processing_app/basics/math/double_random.rb +2 -2
- data/samples/processing_app/basics/math/noise_wave.rb +1 -1
- data/samples/processing_app/basics/math/random.rb +1 -1
- data/samples/processing_app/basics/objects/module.rb +1 -1
- data/samples/processing_app/basics/objects/struct.rb +1 -1
- data/samples/processing_app/basics/structure/loop.rb +19 -14
- data/samples/processing_app/basics/structure/recursion2.rb +2 -2
- data/samples/processing_app/basics/textures/texture3.rb +13 -33
- data/samples/processing_app/basics/transform/birds.rb +5 -5
- data/samples/processing_app/basics/transform/cubes_in_cube.rb +3 -3
- data/samples/processing_app/basics/transform/rotate.rb +1 -1
- data/samples/processing_app/basics/typography/kinetic_type.rb +1 -1
- data/samples/processing_app/demos/graphics/bezier_patch.rb +34 -34
- data/samples/processing_app/demos/graphics/trefoil.rb +1 -1
- data/samples/processing_app/demos/graphics/wiggling.rb +5 -5
- data/samples/processing_app/demos/performance/esfera.rb +4 -4
- data/samples/processing_app/demos/performance/text_rendering.rb +1 -1
- data/samples/processing_app/library/dxf/simple_export.rb +3 -3
- data/samples/processing_app/library/pdf/complex_3D.rb +11 -11
- data/samples/processing_app/library/vecmath/vec2d/bouncing_ball.rb +1 -1
- data/samples/processing_app/library/vecmath/vec2d/circle_collision.rb +3 -3
- data/samples/processing_app/library/vecmath/vec2d/library/flock/flock.rb +5 -5
- data/samples/processing_app/library/vecmath/vec2d/library/particle/{particle_system.rb → particle.rb} +28 -21
- data/samples/processing_app/library/vecmath/vec2d/morph.rb +3 -3
- data/samples/processing_app/library/vecmath/vec2d/particle_system_pshape.rb +3 -3
- data/samples/processing_app/library/vecmath/vec2d/reflection1.rb +2 -2
- data/samples/processing_app/library/vecmath/vec2d/seeking_neural.rb +3 -2
- data/samples/processing_app/library/vecmath/vec2d/simple_particle_system.rb +1 -1
- data/samples/processing_app/library/vecmath/vec3d/frame_of_reference.rb +4 -4
- data/samples/processing_app/topics/advanced_data/library/word/word.rb +1 -1
- data/samples/processing_app/topics/advanced_data/load_save_XML.rb +1 -1
- data/samples/processing_app/topics/advanced_data/load_save_json.rb +1 -1
- data/samples/processing_app/topics/advanced_data/load_save_struct_yaml.rb +1 -1
- data/samples/processing_app/topics/advanced_data/load_save_yaml.rb +1 -1
- data/samples/processing_app/topics/advanced_data/threads_two.rb +1 -2
- data/samples/processing_app/topics/cellular_automata/game_of_life.rb +3 -3
- data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +2 -2
- data/samples/processing_app/topics/cellular_automata/library/cell/cell.rb +4 -4
- data/samples/processing_app/topics/cellular_automata/library/simple_cell/simple_cell.rb +1 -1
- data/samples/processing_app/topics/cellular_automata/spore1.rb +1 -1
- data/samples/processing_app/topics/cellular_automata/spore2.rb +1 -1
- data/samples/processing_app/topics/create_shapes/group_pshape.rb +2 -2
- data/samples/processing_app/topics/create_shapes/library/particle/particle_system.rb +3 -3
- data/samples/processing_app/topics/create_shapes/library/polygon/polygon.rb +2 -2
- data/samples/processing_app/topics/create_shapes/library/star/star.rb +3 -3
- data/samples/processing_app/topics/create_shapes/particle_system_pshape.rb +1 -1
- data/samples/processing_app/topics/create_shapes/path_pshape.rb +1 -1
- data/samples/processing_app/topics/drawing/scribble_plotter.rb +2 -2
- data/samples/processing_app/topics/gui/button.rb +16 -16
- data/samples/processing_app/topics/gui/rollover.rb +13 -13
- data/samples/processing_app/topics/image_processing/blur.rb +2 -2
- data/samples/processing_app/topics/image_processing/edge_detection.rb +2 -2
- data/samples/processing_app/topics/lsystems/cstest.rb +1 -1
- data/samples/processing_app/topics/lsystems/library/stochastic_grammar/stochastic_grammar.rb +1 -1
- data/samples/processing_app/topics/motion/bouncy_bubbles.rb +1 -1
- data/samples/processing_app/topics/motion/brownian.rb +2 -2
- data/samples/processing_app/topics/motion/circle_collision.rb +1 -1
- data/samples/processing_app/topics/motion/cubes_in_cube.rb +1 -1
- data/samples/processing_app/topics/motion/library/cube/cube.rb +2 -2
- data/samples/processing_app/topics/motion/morph.rb +11 -11
- data/samples/processing_app/topics/motion/moving_on_curves.rb +4 -4
- data/samples/processing_app/topics/motion/puff.rb +4 -4
- data/samples/processing_app/topics/motion/reflection1.rb +3 -3
- data/samples/processing_app/topics/motion/reflection2.rb +1 -1
- data/samples/processing_app/topics/shaders/bw_shader.rb +1 -1
- data/samples/processing_app/topics/shaders/glsl_heightmap_noise.rb +2 -2
- data/samples/processing_app/topics/simulate/flocking.rb +6 -6
- data/samples/processing_app/topics/simulate/library/flock/flock.rb +33 -41
- data/samples/processing_app/topics/simulate/multiple_particle_systems.rb +34 -60
- data/samples/processing_app/topics/simulate/simple_particle_system.rb +20 -32
- data/samples/processing_app/topics/simulate/smoke_particle_system.rb +45 -57
- data/samples/processing_app/topics/simulate/springs.rb +40 -44
- metadata +4 -5
- data/samples/processing_app/library/vecmath/vec2d/multiple_particle_systems.rb +0 -141
- data/samples/processing_app/library/vecmath/vec2d/smoke_particle_system.rb +0 -133
@@ -10,7 +10,7 @@ class Ball
|
|
10
10
|
@position = Vec2D.new(x, y)
|
11
11
|
@r = r
|
12
12
|
@m = r * 0.1
|
13
|
-
@velocity = Vec2D.new(rand(-3.0
|
13
|
+
@velocity = Vec2D.new(rand(-3.0..3), rand(-3.0..3))
|
14
14
|
end
|
15
15
|
|
16
16
|
def update
|
@@ -18,10 +18,10 @@ class Ball
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def check_boundary width, height
|
21
|
-
if !(r
|
21
|
+
if !(r..width - r).include?(position.x)
|
22
22
|
(position.x > width - r)? position.x = width - r : position.x = r
|
23
23
|
velocity.x *= -1
|
24
|
-
elsif !(r
|
24
|
+
elsif !(r..height - r).include?(position.y)
|
25
25
|
(position.y > height - r)? position.y = height - r : position.y = r
|
26
26
|
velocity.y *= -1
|
27
27
|
end
|
data/samples/contributed/fern.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# by Luis Correia
|
3
3
|
|
4
4
|
attr_reader :boundary
|
5
|
-
|
5
|
+
|
6
6
|
def setup
|
7
7
|
size 500, 500
|
8
8
|
@boundary = Boundary.new(0, width )
|
@@ -16,10 +16,9 @@ def draw
|
|
16
16
|
x0, y0 = 0.0, 0.0
|
17
17
|
x, y, r = 0.0, 0.0, 0.0
|
18
18
|
i, j = 0, 0
|
19
|
-
max_iterations =
|
20
|
-
|
19
|
+
max_iterations = 200_000
|
21
20
|
max_iterations.times do
|
22
|
-
r = rand(0
|
21
|
+
r = rand(0..100.0)
|
23
22
|
if r <= 1
|
24
23
|
x = 0.0
|
25
24
|
y = 0.16 * y0
|
@@ -29,26 +28,24 @@ def draw
|
|
29
28
|
elsif r <= 14
|
30
29
|
x = -0.15 * x0 + 0.28 * y0
|
31
30
|
y = 0.26 * x0 + 0.24 * y0
|
32
|
-
else
|
31
|
+
else
|
33
32
|
x = 0.85 * x0 + 0.04 * y0
|
34
33
|
y = -0.004 * x0 + 0.85 * y0 + 1.6
|
35
34
|
end
|
36
|
-
|
37
35
|
i = height - (y * 45).to_i
|
38
36
|
j = width / 2 + (x * 45).to_i
|
39
|
-
pixels[i * height + j] +=
|
37
|
+
pixels[i * height + j] += 2_560 if (boundary.include?(i) && boundary.include?(j))
|
40
38
|
x0, y0 = x, y
|
41
39
|
end
|
42
|
-
|
43
40
|
update_pixels
|
44
41
|
end
|
45
42
|
|
46
43
|
# Abstract boundary checking to this
|
47
44
|
# lightweight class
|
48
45
|
#
|
49
|
-
|
46
|
+
|
50
47
|
Boundary = Struct.new(:lower, :upper) do
|
51
48
|
def include? x
|
52
|
-
(lower
|
49
|
+
(lower...upper).cover? x
|
53
50
|
end
|
54
51
|
end
|
@@ -52,7 +52,7 @@ end
|
|
52
52
|
|
53
53
|
def render_globe
|
54
54
|
push_matrix
|
55
|
-
(0
|
55
|
+
(0..[nbr_points, pts.length].min).each do |i|
|
56
56
|
lat = pts[i].lat
|
57
57
|
lon = pts[i].lon
|
58
58
|
push_matrix
|
@@ -73,7 +73,7 @@ end
|
|
73
73
|
SpherePoint = Struct.new(:lat, :lon)
|
74
74
|
|
75
75
|
def init_sphere(num)
|
76
|
-
(0
|
76
|
+
(0..num).each do |i|
|
77
77
|
lon = GA * i
|
78
78
|
lon /= TAU
|
79
79
|
lon -= lon.floor
|
@@ -2,27 +2,28 @@
|
|
2
2
|
# This is a full-screen demo
|
3
3
|
# Since processing-2.0 it is opengl
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
size displayWidth, displayHeight, P3D
|
10
|
-
no_stroke
|
11
|
-
end
|
12
|
-
|
13
|
-
def draw
|
14
|
-
lights
|
15
|
-
background 0
|
16
|
-
fill 120, 160, 220
|
17
|
-
(width/100).times do |x|
|
18
|
-
(height/100).times do |y|
|
19
|
-
new_x, new_y = x * 100, y * 100
|
20
|
-
push_matrix
|
21
|
-
translate new_x + 50, new_y + 50
|
22
|
-
rotate_y(((mouse_x.to_f + new_x) / width) * Math::PI)
|
23
|
-
rotate_x(((mouse_y.to_f + new_y) / height) * Math::PI)
|
24
|
-
box 90
|
25
|
-
pop_matrix
|
26
|
-
end
|
5
|
+
class FullScreen < Processing::App
|
6
|
+
def setup
|
7
|
+
size displayWidth, displayHeight, P3D
|
8
|
+
no_stroke
|
27
9
|
end
|
10
|
+
|
11
|
+
def draw
|
12
|
+
lights
|
13
|
+
background 0
|
14
|
+
fill 120, 160, 220
|
15
|
+
(width/100).times do |x|
|
16
|
+
(height/100).times do |y|
|
17
|
+
new_x, new_y = x * 100, y * 100
|
18
|
+
push_matrix
|
19
|
+
translate new_x + 50, new_y + 50
|
20
|
+
rotate_y(((mouse_x.to_f + new_x) / width) * Math::PI)
|
21
|
+
rotate_x(((mouse_y.to_f + new_y) / height) * Math::PI)
|
22
|
+
box 90
|
23
|
+
pop_matrix
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
28
27
|
end
|
28
|
+
# Full screen should now be set at runtime, now there is only one way to do it!
|
29
|
+
FullScreen.new(full_screen: true)
|
@@ -15,12 +15,12 @@ def setup
|
|
15
15
|
no_stroke
|
16
16
|
color_mode(HSB, 1.0)
|
17
17
|
background(0)
|
18
|
-
frame_rate(
|
18
|
+
frame_rate(4_000)
|
19
19
|
end
|
20
20
|
|
21
21
|
def draw
|
22
22
|
translate(width / 2, height / 2)
|
23
|
-
dot(rand(-180
|
23
|
+
dot(rand(-180..180), rand(-180..180), rand(CMIN..CMAX)) unless frame_count > 200_000
|
24
24
|
end
|
25
25
|
|
26
26
|
def dot(px, py, c)
|
@@ -31,6 +31,6 @@ def dot(px, py, c)
|
|
31
31
|
fill(((CMIN - c) / (CMIN - CMAX)), 1, 1)
|
32
32
|
ellipse px * width / 360, py * height / 360, SZ, SZ
|
33
33
|
else
|
34
|
-
dot(rand(-180
|
34
|
+
dot(rand(-180..180), rand(-180..180), rand(CMIN..CMAX))
|
35
35
|
end
|
36
36
|
end
|
@@ -1,26 +1,27 @@
|
|
1
1
|
# Mandelbrot Set example
|
2
2
|
# by Jordan Scales (http://jordanscales.com)
|
3
|
-
#
|
4
|
-
|
5
|
-
|
3
|
+
# Modified to use map1d (instead of map), and somewhat
|
4
|
+
# optimized (update_pixels instead of set, and hypot for abs)
|
6
5
|
# default size 900x600
|
7
6
|
# no need to loop
|
7
|
+
|
8
8
|
def setup
|
9
9
|
size 900, 600
|
10
|
+
load_pixels
|
10
11
|
no_loop
|
11
12
|
end
|
12
13
|
|
13
14
|
# main drawing method
|
14
15
|
def draw
|
15
|
-
(0
|
16
|
-
(0
|
17
|
-
c = Complex.new(
|
18
|
-
|
16
|
+
(0...900).each do |x|
|
17
|
+
(0...600).each do |y|
|
18
|
+
c = Complex.new(map1d(x, (0...900), (-3..1.5)), map1d(y, (0...600), (-1.5..1.5)))
|
19
19
|
# mandel will return 0 to 20 (20 is strong)
|
20
20
|
# map this to 0, 255 (and flip it)
|
21
|
-
|
21
|
+
pixels[x + y * 900] = color(255 - map1d(mandel(c, 20), (0..20), (0..255)).to_i)
|
22
22
|
end
|
23
23
|
end
|
24
|
+
update_pixels
|
24
25
|
end
|
25
26
|
|
26
27
|
# calculates the "accuracy" of a given point in the mandelbrot set
|
@@ -33,14 +34,11 @@ def mandel(z, max = 10)
|
|
33
34
|
z.square
|
34
35
|
z.add c
|
35
36
|
break if z.abs > 2
|
36
|
-
|
37
37
|
score += 1
|
38
38
|
end
|
39
|
-
|
40
39
|
score
|
41
40
|
end
|
42
41
|
|
43
|
-
|
44
42
|
# rolled my own Complex class
|
45
43
|
# stripped of all functionality, except for what I needed (abs, square, add, to_s)
|
46
44
|
#
|
@@ -72,11 +70,10 @@ class Complex
|
|
72
70
|
|
73
71
|
# computes the magnitude
|
74
72
|
def abs
|
75
|
-
|
73
|
+
hypot(real, imag)
|
76
74
|
end
|
77
75
|
|
78
76
|
def to_s
|
79
77
|
"#{real} + #{imag}i"
|
80
78
|
end
|
81
|
-
|
82
79
|
end
|
@@ -38,7 +38,7 @@ def draw
|
|
38
38
|
# Draw the surface
|
39
39
|
surface.display
|
40
40
|
# NB question mark is reqd to call mouse_pressed value, else method gets called.
|
41
|
-
particles << Particle.new(box2d, mouse_x, mouse_y, rand(2.0
|
41
|
+
particles << Particle.new(box2d, mouse_x, mouse_y, rand(2.0..6)) if mouse_pressed?
|
42
42
|
# Draw all particles
|
43
43
|
particles.each do |p|
|
44
44
|
p.display
|
data/samples/external_library/java_processing/box2d_processing/library/custom_shape/custom_shape.rb
CHANGED
@@ -91,8 +91,8 @@ module B2D
|
|
91
91
|
|
92
92
|
|
93
93
|
# Give it some initial random velocity
|
94
|
-
body.set_linear_velocity(Vec2.new(rand(-5
|
95
|
-
body.set_angular_velocity(rand(-5
|
94
|
+
body.set_linear_velocity(Vec2.new(rand(-5..5), rand(2..5)))
|
95
|
+
body.set_angular_velocity(rand(-5..5))
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
@@ -122,7 +122,7 @@ module PS
|
|
122
122
|
@body = box2d.create_body(bd)
|
123
123
|
|
124
124
|
# Give it some initial random velocity
|
125
|
-
body.set_linear_velocity(PS::Vec2.new(rand(-1
|
125
|
+
body.set_linear_velocity(PS::Vec2.new(rand(-1..1), rand(-1..1)))
|
126
126
|
|
127
127
|
# Make the body's shape a circle
|
128
128
|
cs = PS::CircleShape.new
|
@@ -144,8 +144,8 @@ module SB
|
|
144
144
|
# Attach fixture to body
|
145
145
|
body.create_fixture(fd)
|
146
146
|
# Give it a random initial velocity (and angular velocity)
|
147
|
-
body.set_linear_velocity(SB::Vec2.new(rand(-10
|
148
|
-
body.set_angular_velocity(rand(-10
|
147
|
+
body.set_linear_velocity(SB::Vec2.new(rand(-10..10), rand(5..10)))
|
148
|
+
body.set_angular_velocity(rand(-10..10))
|
149
149
|
end
|
150
150
|
end
|
151
151
|
end
|
@@ -56,9 +56,9 @@ def draw
|
|
56
56
|
fill(0)
|
57
57
|
if ((frame_count % 40) == 1)
|
58
58
|
b = FBlob.new
|
59
|
-
s = rand(30
|
59
|
+
s = rand(30..40)
|
60
60
|
space = (width - SIDE_MARGIN * 2-s)
|
61
|
-
@x_pos = (x_pos + rand(s
|
61
|
+
@x_pos = (x_pos + rand(s..space/2.0)) % space
|
62
62
|
b.set_as_circle(SIDE_MARGIN + x_pos + s / 2, height - rand(100), s, 20)
|
63
63
|
b.set_stroke(0)
|
64
64
|
b.set_stroke_weight(2)
|
@@ -62,11 +62,11 @@ def key_pressed
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def create_spider
|
65
|
-
pos_x = rand(MAIN_SIZE/2
|
66
|
-
pos_y = rand(MAIN_SIZE/2
|
65
|
+
pos_x = rand(MAIN_SIZE/2..width-MAIN_SIZE/2)
|
66
|
+
pos_y = rand(MAIN_SIZE/2..height-MAIN_SIZE/2)
|
67
67
|
main = Fis::FCircle.new(MAIN_SIZE)
|
68
68
|
main.set_position(pos_x, pos_y)
|
69
|
-
main.set_velocity(rand(-20
|
69
|
+
main.set_velocity(rand(-20..20), rand(-20..20))
|
70
70
|
main.set_fill_color(body_color)
|
71
71
|
main.set_no_stroke
|
72
72
|
main.set_group_index(2)
|
@@ -78,7 +78,7 @@ def create_spider
|
|
78
78
|
y = LEG_SIZE * sin(i * TAU/3) + pos_y
|
79
79
|
leg = Fis::FCircle.new(MAIN_SIZE/2)
|
80
80
|
leg.set_position(pos_x, pos_y)
|
81
|
-
leg.set_velocity(rand(-20
|
81
|
+
leg.set_velocity(rand(-20..20), rand(-20 ..20))
|
82
82
|
leg.set_fill_color(body_color)
|
83
83
|
leg.set_no_stroke
|
84
84
|
world.add(leg)
|
@@ -17,8 +17,8 @@ def setup
|
|
17
17
|
lights
|
18
18
|
smooth(8)
|
19
19
|
fill(0)
|
20
|
-
@nodeA = GD::Node.new(rand * width, rand * height, rand(-200
|
21
|
-
@nodeB = GD::Node.new(rand * width, rand * height, rand(-200
|
20
|
+
@nodeA = GD::Node.new(rand * width, rand * height, rand(-200..200))
|
21
|
+
@nodeB = GD::Node.new(rand * width, rand * height, rand(-200..200))
|
22
22
|
nodeA.setStrength(-2)
|
23
23
|
nodeB.setStrength(-2)
|
24
24
|
nodeA.setDamping(0.1)
|
@@ -20,8 +20,8 @@ def setup
|
|
20
20
|
|
21
21
|
fill(255,102,0)
|
22
22
|
stroke(0)
|
23
|
-
|
24
|
-
# Load the font file we want to use (the file must be in the data folder in the sketch floder),
|
23
|
+
|
24
|
+
# Load the font file we want to use (the file must be in the data folder in the sketch floder),
|
25
25
|
# with the size 72 and the alignment CENTER
|
26
26
|
@grp = RG::get_text("Hola Mundo!", "FreeSans.ttf", 72, CENTER)
|
27
27
|
smooth 4
|
@@ -30,14 +30,14 @@ end
|
|
30
30
|
def draw
|
31
31
|
# Clean frame
|
32
32
|
background(255)
|
33
|
-
|
33
|
+
|
34
34
|
# Set the origin to draw in the middle of the sketch
|
35
35
|
translate width / 2, height / 2
|
36
|
-
|
37
|
-
# Transform at each frame the first letter with a PI/20 radians
|
36
|
+
|
37
|
+
# Transform at each frame the first letter with a PI/20 radians
|
38
38
|
# rotation around the center of the first letter's center
|
39
|
-
grp.children[0].rotate(PI/20, grp.children[0].get_center)
|
40
|
-
|
39
|
+
grp.children[0].rotate(PI / 20, grp.children[0].get_center)
|
40
|
+
|
41
41
|
# Draw the group of shapes representing "Hola Mundo!" on the PGraphics canvas g (which is the default canvas of the sketch)
|
42
42
|
grp.draw
|
43
43
|
end
|
@@ -11,11 +11,11 @@ def setup
|
|
11
11
|
ArcBall.init(self)
|
12
12
|
smooth(8)
|
13
13
|
values = [] # build a multi-dimensional array in ruby
|
14
|
-
(0
|
14
|
+
(0..RES).each do |i| # the inclusive range is intentional here
|
15
15
|
valu = []
|
16
|
-
(0
|
16
|
+
(0..RES).each do |j|
|
17
17
|
val = []
|
18
|
-
(0
|
18
|
+
(0..RES).each do |k|
|
19
19
|
val << 2.1 * noise(0.35 * i, 0.35 * j, 0.35 * k)
|
20
20
|
end
|
21
21
|
valu << val
|
@@ -39,7 +39,7 @@ def draw
|
|
39
39
|
# Draw the surface
|
40
40
|
surface.display
|
41
41
|
# NB question mark is reqd to call mouse_pressed value, else method gets called.
|
42
|
-
particles << Particle.new(box2d, mouse_x, mouse_y, rand(2.0
|
42
|
+
particles << Particle.new(box2d, mouse_x, mouse_y, rand(2.0..6)) if mouse_pressed?
|
43
43
|
# Draw all particles
|
44
44
|
particles.each do |p|
|
45
45
|
p.display
|
@@ -91,8 +91,8 @@ module B2D
|
|
91
91
|
|
92
92
|
|
93
93
|
# Give it some initial random velocity
|
94
|
-
body.set_linear_velocity(Vec2.new(rand(-5
|
95
|
-
body.set_angular_velocity(rand(-5
|
94
|
+
body.set_linear_velocity(Vec2.new(rand(-5..5), rand(2..5)))
|
95
|
+
body.set_angular_velocity(rand(-5..5))
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb
CHANGED
@@ -125,7 +125,7 @@ module PS
|
|
125
125
|
@body = box2d.create_body(bd)
|
126
126
|
|
127
127
|
# Give it some initial random velocity
|
128
|
-
body.set_linear_velocity(PS::Vec2.new(rand(-1
|
128
|
+
body.set_linear_velocity(PS::Vec2.new(rand(-1..1), rand(-1..1)))
|
129
129
|
|
130
130
|
# Make the body's shape a circle
|
131
131
|
cs = PS::CircleShape.new
|
@@ -144,8 +144,8 @@ module SB
|
|
144
144
|
# Attach fixture to body
|
145
145
|
body.create_fixture(fd)
|
146
146
|
# Give it a random initial velocity (and angular velocity)
|
147
|
-
body.set_linear_velocity(SB::Vec2.new(rand(-10
|
148
|
-
body.set_angular_velocity(rand(-10
|
147
|
+
body.set_linear_velocity(SB::Vec2.new(rand(-10..10), rand(5..10)))
|
148
|
+
body.set_angular_velocity(rand(-10..10))
|
149
149
|
end
|
150
150
|
end
|
151
151
|
end
|
@@ -51,11 +51,11 @@ class Hilbert
|
|
51
51
|
@rule = "^<XF^<XFX-F^>>XFX&F+>>XFX-F>X->"
|
52
52
|
@distance = len
|
53
53
|
@theta = Math::PI/180 * 90
|
54
|
-
@phi = Math::PI/180 * 90
|
54
|
+
@phi = Math::PI/180 * 90
|
55
55
|
grammar.add_rule(premis, rule)
|
56
56
|
end
|
57
57
|
|
58
|
-
def render()
|
58
|
+
def render()
|
59
59
|
translate( -distance * ADJUSTMENT[gen], distance * ADJUSTMENT[gen], -distance * ADJUSTMENT[gen])
|
60
60
|
fill(0, 75, 152)
|
61
61
|
light_specular(204, 204, 204)
|
@@ -92,9 +92,9 @@ class Hilbert
|
|
92
92
|
|
93
93
|
def create_grammar(gen)
|
94
94
|
@gen = gen # required for depth adjustment
|
95
|
-
@distance *= 1/(
|
95
|
+
@distance *= 1/(2**gen) - 1)
|
96
96
|
@production = @grammar.generate gen
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
|
100
100
|
end
|