#!/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()