-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbinary-clock.rb
More file actions
39 lines (36 loc) · 863 Bytes
/
Copy pathbinary-clock.rb
File metadata and controls
39 lines (36 loc) · 863 Bytes
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
31
32
33
34
35
36
37
38
39
# converts decimal to binary: dec2bin(5) => [1,0,1,0]
def dec2bin num, length
bin = []
length.times{|i| bin << num[i] }
bin
end
# draws binary number
def drawbin bin
width = 20
flow :width => width, :margin => 20 do
bin.each_with_index do |b, idx|
fill rgb(0, 255, 0, 255*b)
oval :top => idx*width, :left => 0, :radius => width*0.4
end
end
end
# draws time in format HH:MM:SS
def draw time
drawbin dec2bin(time.hour/10, 2)
drawbin dec2bin(time.hour%10, 4)
flow :width => 10
drawbin dec2bin(time.min/10, 3)
drawbin dec2bin(time.min%10, 4)
flow :width => 10
drawbin dec2bin(time.sec/10, 3)
drawbin dec2bin(time.sec%10, 4)
end
# main application
Shoes.app :width => 180, :height => 120, :title => "Binary Clock", :resizable => false do
draw Time.now
every 1 do
clear do
draw Time.now
end
end
end