-
Notifications
You must be signed in to change notification settings - Fork 1
/
triangle-pixels.haml
31 lines (24 loc) · 1.25 KB
/
triangle-pixels.haml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
!!! XML
- if no_cropping
- range = (0..-1)
- else
- range = (0..-2)
%svg{"height" => "#{buckets.first[range].size * scale}px", "version" => "1.1", "width" => "#{buckets[range].size * scale}px", "xmlns" => "http://www.w3.org/2000/svg", "xmlns:svg" => "http://www.w3.org/2000/svg"}
%g
- buckets[range].each_with_index do |rows, column|
- # don't overlap on last column
- if column < buckets[range].size - 1
- right_overlap = 1
- else
- right_overlap = 0
- rows[range].each_with_index do |cell, row|
- # don't overlap on last row
- if row < rows[range].size - 1
- bottom_overlap = 1
- else
- bottom_overlap = 0
%path{:d => "m #{column * scale},#{row * scale} 0,#{1 * scale + bottom_overlap} #{1 * scale + right_overlap},0 0,#{-1 * scale - bottom_overlap} z", :style => "fill:#{cell[:left].color}"}
- if cell[:left].color == cell[:top].color
%path{:d => "m #{column * scale},#{(row + 1) * scale} #{1 * scale},0 0,#{-1 * scale},0 z", :style => "fill:#{cell[:right].color};"}
- else
%path{:d => "m #{column * scale},#{row * scale} #{1 * scale},#{1 * scale} 0,#{-1 * scale} z", :style => "fill:#{cell[:top].color};"}