From edbfce91d2b66d5e140dda146ab76a2ccdbe3eec Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Fri, 1 Apr 2011 15:58:45 -0400 Subject: [PATCH] increase circle resolution when zoomed in --- SketchWidget.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/SketchWidget.py b/SketchWidget.py index a61f474..e2414c5 100644 --- a/SketchWidget.py +++ b/SketchWidget.py @@ -12,7 +12,7 @@ class SketchWidget: def __init__(self, sketch): self.sketch = sketch self.view_center = (0, 0) - self.view_width = 5.0 + self.view_width = 4.0 self.size = (1, 1) try: # try double-buffered @@ -108,10 +108,21 @@ class SketchWidget: self.drawFilledLine(pt0[0], pt0[1], pt1[0], pt1[1], size) def drawCircle(self, shape, size): - steps = 16 - step = 2 * math.pi / steps center = self.ptToScreenPt(shape.getCenter()) rad = self.distToScreenDist(shape.getRadius()) + if rad < 30: + steps = 12 + elif rad < 50: + steps = 16 + elif rad < 100: + steps = 24 + elif rad < 200: + steps = 36 + elif rad < 400: + steps = 48 + else: + steps = 64 + step = 2 * math.pi / steps for i in range(steps + 1): angle = i * step next_angle = (i + 1) * step