]> projects.mako.cc - yourule/blobdiff - ruler.py
first working version
[yourule] / ruler.py
diff --git a/ruler.py b/ruler.py
deleted file mode 100644 (file)
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("<?xml version='1.0' encoding='UTF-8'?>\n")
-        xml.write("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.0//EN\" \"http://www .w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd \">\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)
-
-

Benjamin Mako Hill || Want to submit a patch?