Here I create a faux bar code (approximates to a 2 from 5 version), the output is random, apart from the start and end bars and the number text. Groups of 5 bars are created, which will on average will contain two wide and 3 narrow bars. The text is drawn using native ruby-processing, the bars are produced using the context free DSL.
#########################
# bar_code.rb (2 of 5)
# demonstrates the vbar
# custom terminal
#########################
load_library 'context_free'
def setup_the_barcode
@barcode = ContextFree.define do
############ Begin defining custom terminal, a proportional vertical bar
class << self
define_method(:vbar) do |some_options|
size, options = *self.get_shape_values(some_options)
w = some_options[:w]|| 0.1 # default vbar width is 0.1
ratio = w * size
rot = options[:rotation]
rect_mode(CENTER)
rotate(rot) if rot
rect(-0.5 * ratio, -0.4 * size, 0.5 * ratio, 0.6 * size)
rotate(-rot) if rot
end
end
########### End definition of custom terminal 'vbar'
rule :strip do
2.times do
end_bar :x => 0.09
end
4.times do
five :x => 0.04
end
2.times do
end_bar :x => 0.09
end
end
rule :bar, 1 do # wide
vbar :size => 0.8, :w => 0.08, :brightness => -1
end
rule :bar, 1 do # wide
vbar :size => 0.8, :w => 0.06, :brightness => -1
end
rule :bar, 1.6 do # narrow
vbar :size => 0.8, :w => 0.02, :brightness => -1
end
rule :bar, 1.6 do # narrow
vbar :size => 0.8, :w => 0.03, :brightness => -1
end
rule :end_bar, 1.6 do # narrow extra long
vbar :size => 1, :w => 0.03, :brightness => -1
end
rule :five do
5.times do
bar :x => 0.06
end
end
end
end
def setup
size 350, 200
text_font(create_font("Dialog.plain", 24), 24)
background 255, 255, 0
draw_text
smooth
setup_the_barcode
draw_it
end
def draw_it
@barcode.render :strip, :start_x => 0, :start_y => height,
:size => height
end
def draw_text
code = "23467"
fill 0
text code, 40, 80
end
Experiments with ruby-processing (processing-2.2.1) and JRubyArt for processing-3.0
Saturday 24 April 2010
Subscribe to:
Post Comments (Atom)
Followers
Blog Archive
-
▼
2010
(73)
-
▼
April
(10)
- Using the Voronoi library in ruby processing
- Moire patterns from custom bar shape Context free DSL
- Faux barcode using ruby-processing Context Free DSL
- Adding a custom terminal in ruby-processing contex...
- How to Draw a Tree in Processing
- Terse Code to use file chooser in Ruby Processing
- Another funky random sketch with perlin noise
- An Translation Exercise (Very Clever Pseudo 3D Ani...
- Live Editing Ruby-Processing from jEdit
- Plasma fractal (and carpet)
-
▼
April
(10)
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