#!/usr/bin/env ruby
# Creates a timeline for the various solutions for the determining
# longitude at sea.
# Created by sjavey on 2007-07-16.
# Copyright (c) 2007. All rights reserved.
class History
def initialize
@license = "E1EWK3SY2-DHLATYPWU28RU1PSTILK"
@years = [1514,1530,1559,1598,1618,1656,1675,1664,1675,1714,1737,1741,1759,1760,1770]
@x_offset = 100
@y_offset = 100
@width = 600
@height = 150
@x_axis_steps = @years.size
end
def writeAxisValueText
str = ""
@years.each { |year|
str << "\n#{year}"
}
return str << "\n"
end
def yearToPixel(year)
return @x_offset + (@width/@x_axis_steps)*@years.index(year)
end
def addEvent(year, label, color, y)
str = <#{label}
EOS
end
def chart
str = <
#{@license}
#{writeAxisValueText()}
Moons
of Jupiter
Motion
of Moon
Chronometer
0
#{@years.index(1618)}
#{@years.index(1675)}
#{@years.index(1770)}
0
#{@years.index(1598)}
#{@years.index(1514)}
#{@years.index(1530)}
floating bar
history of longitude
#{addEvent(1530, "Frisius - idea", "ffff00", 100)}
#{addEvent(1656, "Huygens - 1st clock", "ffff00", 100)}
#{addEvent(1664, "Huygens - 2nd clock", "ffff00", 115)}
#{addEvent(1737, "H-1", "ffff00", 108)}
#{addEvent(1741, "H-2", "ffff00", 123)}
#{addEvent(1759, "H-3", "ffff00", 138)}
#{addEvent(1760, "H-4", "000000", 100)}
#{addEvent(1770, "H-5", "00ffff", 123)}
ffffff
aa88ff
aaff88
true
EOS
end
end
history = History.new()
puts history.chart()