increase circle resolution when zoomed in
This commit is contained in:
parent
bcb47a4825
commit
edbfce91d2
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user