X-Git-Url: https://projects.mako.cc/source/yourule/blobdiff_plain/769e51f5d2f06c6e40a09378b9c127d21d65c8f5..1711747333c7666b644f6124de39c49cd0b26526:/ruler.py diff --git a/ruler.py b/ruler.py deleted file mode 100644 index 39bcd3d..0000000 --- a/ruler.py +++ /dev/null @@ -1,78 +0,0 @@ -# define the length of things -from __future__ import division -import SVGdraw - -class Ruler: - def __init__(self, scale=None, units=None, - ruler_height=None, ruler_length=None): - - # default values come from OLPC - self.scale = scale or 78.740 - self.units = units or 'centimeters' - self.ruler_height = ruler_height or 200 - self.ruler_length = ruler_length or 15 - - font_height = 22 - - self.drawing = SVGdraw.drawing() - self.svg = SVGdraw.svg() - - # create the body of the ruler - body = SVGdraw.rect(0, 0, - (self.scale * self.ruler_length), - self.ruler_height, "white", "black", 2) - self.svg.addElement(body) - - # add a units label - units = SVGdraw.text((self.scale / 2), - (self.ruler_height - self.scale / 5), - self.units, font_height) - self.svg.addElement(units) - - self.point = 0.0 - - - # find the appropriate subunit marker - self.subunit_marks = 1 - - while self.scale / self.subunit_marks >= font_height * 3: - if self.subunit_marks == 1: - self.subunit_marks += 3 - else: - self.subunit_marks = self.subunit_marks * 2 - - # for every unit - for i in range(self.ruler_length): - - # place subunit marks - for i2 in range(self.subunit_marks): - self.__drawline(0.3) - - self.__drawline(0.6) - self.svg.addElement(SVGdraw.text((self.point - font_height * 1.4), - (self.ruler_height * 0.6 - 5), - str(i + 1), font_height)) - - - self.drawing.setSVG(self.svg) - - def output(self): - import cStringIO - xml = cStringIO.StringIO() - xml.write("\n") - xml.write("\n") - self.svg.toXml(0,xml) - - return(xml.getvalue()) - - def write_svg_to_file(self, filename='output.svg'): - self.drawing.toXml(filename) - - def __drawline(self, size): - - self.point = self.point + (self.scale / (1 + self.subunit_marks)) - line = SVGdraw.line(self.point, 0, self.point, - (self.ruler_height * size), "black", 2) - self.svg.addElement(line) - -