From db643f92c12d8915a19f37f7d250130b9c2d7550 Mon Sep 17 00:00:00 2001 From: Michael Fogleman Date: Sat, 1 Apr 2017 21:02:47 -0400 Subject: [PATCH] more drawing functions --- axi/drawing.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/axi/drawing.py b/axi/drawing.py index a46f564..a01bd82 100644 --- a/axi/drawing.py +++ b/axi/drawing.py @@ -50,6 +50,10 @@ class Drawing(object): # def remove_duplicates(self): # return Drawing(util.remove_duplicates(self.paths)) + def add(self, other): + self.paths.extend(other.paths) + self._bounds = None + def transform(self, func): return Drawing([[func(x, y) for x, y in path] for path in self.paths]) @@ -58,7 +62,9 @@ class Drawing(object): return (x + dx, y + dy) return self.transform(func) - def scale(self, sx, sy): + def scale(self, sx, sy=None): + if sy is None: + sy = sx def func(x, y): return (x * sx, y * sy) return self.transform(func) @@ -89,6 +95,12 @@ class Drawing(object): return drawing.center(width, height) return None + def scale_to_fit_height(self, height, padding=0): + return self.scale_to_fit(1e9, height, padding) + + def scale_to_fit_width(self, width, padding=0): + return self.scale_to_fit(width, 1e9, padding) + def scale_to_fit(self, width, height, padding=0): width -= padding * 2 height -= padding * 2