This implementation of the Heighway dragon starts with square, that is hidden by being transparent, the rotations scaling and translations used make this solution similar to the paper folding solution.
# dragon.rb ruby-processing NB: :alpha is now implemented in ruby-processing (since 8 Nov 2009) the brightness, of dragon in the start rule has no effect, but the DSL doesn't like to call rules with no arguments.
load_library 'context_free'
def setup_the_dragon
@dragon = ContextFree.define do
rule :start do
dragon :brightness => 1.0
end
rule :dragon do
split do
fractal :hue => 0, :brightness => 1.0, :saturation => 1.0
rewind
fractal :hue => 0.2, :brightness => 1.0, :saturation => 1.0, :rotation => 90, :x => -0.4
rewind
fractal :hue => 0.7, :brightness => 1.0, :saturation => 1.0, :rotation => 270, :x => -0.4, :y => -0.33
rewind
end
end
rule :fractal do
square :alpha => 0.01
split do
fractal :size => 1/Math.sqrt(2), :rotation => -45, :x => 0.25, :y => 0.25
rewind
fractal :size => 1/Math.sqrt(2), :rotation => 135, :x => 0.25, :y => 0.25
rewind
end
end
end
end
def setup
size 800, 800
setup_the_dragon
smooth
draw_it
save_frame("dragon.png")
end
def draw
# Do nothing.
end
def draw_it
background 0
@dragon.render :start, :size => width*0.6, :stop_size => 2,
:start_x => width*0.6, :start_y => height*0.6
end
Experiments with ruby-processing (processing-2.2.1) and JRubyArt for processing-3.0
Sunday, 8 November 2009
Heighway Dragon in ruby-processing context free DSL
Labels:
context free,
DSL,
heighway dragon,
ruby processing
Subscribe to:
Post Comments (Atom)
Followers
Blog Archive
-
▼
2009
(50)
-
▼
November
(18)
- Koch curve using l-systems
- Towards a forest, or too many matrix calls
- Seaweed using Lindenmayer system on ruby processing
- A basic example of a plant Lindenmayer systems in...
- Pentagonal Fractal
- Minkowski island using L-System in ruby processing
- Sierpinski Fractal Implemented in ruby-processing ...
- Snake Kolam Ruby Processing
- Penrose Snowflake L-Systems using ruby-processing
- Dragon Fractal Using L-Systems and ruby-processing
- Koch Island Using Lindemayer System in Ruby Proces...
- Lindenmayer system in ruby-processing
- Tessellated "curvy" triangles in ruby-processing
- Dynamic rand with ruby-processing context-free DSL
- Flower in ruby-processing DSL
- Heighway Dragon in ruby-processing context free DSL
- Lévy curve implemented in ruby-processing context ...
- jEdit as a cross platform GUI?
-
▼
November
(18)
About Me
- monkstone
- I have developed JRubyArt and propane new versions of ruby-processing for JRuby-9.1.5.0 and processing-3.2.2
No comments:
Post a Comment