#!/usr/bin/env python from svginstr import * import sys __author__ = "Melchior FRANZ < mfranz # aon : at >" __url__ = "http://gitorious.org/svginstr/" __version__ = "0.2" __license__ = "GPL v2+" __doc__ = """ """ try: a = Instrument("asi.svg", 512, 512, "test face; " + __version__) a.disc(98, color = 'black') a.disc(1) # define mapping function: map scale value 30 - 160 to angle 0-320 degree. # However, the values from 100-160 are compressed slightly, so the lambda function is just 120 values a.angle = lambda x: x * 300.0 / 115.0 - 145.0 # inside line l = 50 # compression compress = 0.8 a.arc(44, 100 + 27 * compress, l+3, width = 8, color = "green") a.arc(100 + 27 * compress, 100 + 58 * compress, l+3, width = 8, color = "yellow") a.arc(33, 85, l, width = 3, color = "white") for i in range(35, 100, 5): a.tick(i, l, 58, 2) for i in range(100, 152, int(5 * compress + 0.5)): a.tick(i, l, 58, 2) for i in range(40, 100, 10): a.tick(i, l, 65, 2) for i in range(100, 155, int(10 * compress + 0.5)): a.tick(i, l, 65, 2) a.tick(100 + 58 * compress, l, 60, color="red") # mph conversion mph = 0.8689 k = 30 for i in range(40, 100, int(10 * mph)): a.tick(i, k, k + 6, 1) for i in range(40 + int(65 * mph), 150, int(10 * mph * compress)): a.tick(i, k, k + 6, 1) # fc-list tells you the names of available fonts on Linux (fc ... font cache) s = 13 a.at(0,-70).text("AIRSPEED", size = 10, font_family = "Lucida Sans", color = "white") a.at(0,-55).text("KNOTS", size = 10, font_family = "Lucida Sans", color = "white") a.at(60,-42).text(40, size = s, font_family = "Lucida Sans", color = "white") a.at(75,20).text(60, size = s, font_family = "Lucida Sans", color = "white") a.at(35,72).text(80, size = s, font_family = "Lucida Sans", color = "white") a.at(-40,72).text(100, size = s, font_family = "Lucida Sans", color = "white") a.at(-75,30).text(120, size = s, font_family = "Lucida Sans", color = "white") a.at(-75,-20).text(140, size = s, font_family = "Lucida Sans", color = "white") a.at(-45,-57).text(160, size = s, font_family = "Lucida Sans", color = "white") # mph markings s = 7 a.at(16,-18).text(40, size = s, font_family = "Lucida Sans", color = "white") a.at(22,2).text(60, size = s, font_family = "Lucida Sans", color = "white") a.at(16,20).text(80, size = s, font_family = "Lucida Sans", color = "white") a.at(0,27).text(100, size = s, font_family = "Lucida Sans", color = "white") a.at(-14,22).text(120, size = s, font_family = "Lucida Sans", color = "white") a.at(-19,13).text(140, size = s, font_family = "Lucida Sans", color = "white") a.at(-22,0).text(160, size = s, font_family = "Lucida Sans", color = "white") a.at(-17,-14).text(180, size = s, font_family = "Lucida Sans", color = "white") a.at(0,-20).text("MPH", size = s, font_family = "Lucida Sans", color = "white") #a.at(75,20).text(60, size = s, font_family = "Lucida Sans", color = "white") #a.at(35,72).text(80, size = s, font_family = "Lucida Sans", color = "white") #a.at(-40,72).text(100, size = s, font_family = "Lucida Sans", color = "white") #a.at(-75,30).text(120, size = s, font_family = "Lucida Sans", color = "white") #a.at(-75,-20).text(140, size = s, font_family = "Lucida Sans", color = "white") #a.at(-45,-55).text(160, size = s, font_family = "Lucida Sans", color = "white") except Error as e: print >>sys.stderr, "\033[31;1m%s\033[m\n" % e