From e516471d6a2e06e28a1ef6bde53b626b47e9ad64 Mon Sep 17 00:00:00 2001 From: Pedro Lambert Date: Sun, 9 Mar 2014 17:50:46 -0300 Subject: [PATCH 1/2] fix pattern randomness --- lib/geo_pattern/pattern.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/geo_pattern/pattern.rb b/lib/geo_pattern/pattern.rb index 20c837d..2c4e490 100644 --- a/lib/geo_pattern/pattern.rb +++ b/lib/geo_pattern/pattern.rb @@ -91,7 +91,8 @@ def generate_pattern abort("Error: the requested generator is invalid.") end else - pattern = hex_val(20, 1) + val = hex_val(20, 2) + pattern = map(val, 0, 255, 0, PATTERNS.size-1).to_i send("geo_#{PATTERNS[pattern]}") end end From bd05c7d38eb39585dec37d6e456c0abb99a01116 Mon Sep 17 00:00:00 2001 From: Pedro Lambert Date: Sun, 9 Mar 2014 21:27:24 -0300 Subject: [PATCH 2/2] remove triangles_rotated pattern --- README.md | 4 ---- lib/geo_pattern/pattern.rb | 48 +------------------------------------- 2 files changed, 1 insertion(+), 51 deletions(-) diff --git a/README.md b/README.md index c531a75..7def2c6 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,6 @@ You can then use this string to set the background: ![](http://jasonlong.github.io/geo_pattern/examples/triangles.png) -### triangles_rotated - -![](http://jasonlong.github.io/geo_pattern/examples/triangles_rotated.png) - ### squares ![](http://jasonlong.github.io/geo_pattern/examples/squares.png) diff --git a/lib/geo_pattern/pattern.rb b/lib/geo_pattern/pattern.rb index 2c4e490..bc1ec29 100644 --- a/lib/geo_pattern/pattern.rb +++ b/lib/geo_pattern/pattern.rb @@ -24,7 +24,6 @@ class Pattern tessellation nested_squares mosaic_squares - triangles_rotated chevrons ].freeze @@ -91,8 +90,7 @@ def generate_pattern abort("Error: the requested generator is invalid.") end else - val = hex_val(20, 2) - pattern = map(val, 0, 255, 0, PATTERNS.size-1).to_i + pattern = hex_val(20, 1) send("geo_#{PATTERNS[pattern]}") end end @@ -539,50 +537,6 @@ def geo_triangles end end - def geo_triangles_rotated - scale = hex_val(0, 1) - side_length = map(scale, 0, 15, 15, 80) - triangle_width = side_length/2 * Math.sqrt(3) - triangle = build_rotated_triangle_shape(side_length, triangle_width) - - svg.set_width(triangle_width * 6) - svg.set_height(side_length * 3) - - i = 0 - for y in 0..5 - for x in 0..5 - val = hex_val(i, 1) - opacity = opacity(val) - fill = fill_color(val) - - styles = { - "fill" => fill, - "fill-opacity" => opacity, - "stroke" => STROKE_COLOR, - "stroke-opacity" => STROKE_OPACITY - } - - rotation = "" - if y % 2 == 0 - rotation = x % 2 == 0 ? 180 : 0 - else - rotation = x % 2 != 0 ? 180 : 0 - end - - svg.polyline(triangle, styles.merge({ - "transform" => "translate(#{triangle_width*x}, #{y*side_length*0.5 - side_length/2}) rotate(#{rotation}, #{triangle_width/2}, #{side_length/2})"})) - - # Add an extra one at top-right, for tiling. - if (y == 0) - svg.polyline(triangle, styles.merge({ - "transform" => "translate(#{triangle_width*x}, #{6*side_length*0.5 - side_length/2}) rotate(#{rotation}, #{triangle_width/2}, #{side_length/2})"})) - - end - i += 1 - end - end - end - def geo_diamonds diamond_width = map(hex_val(0, 1), 0, 15, 10, 50) diamond_height = map(hex_val(1, 1), 0, 15, 10, 50)