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):
|
def __init__(self, sketch):
|
||||||
self.sketch = sketch
|
self.sketch = sketch
|
||||||
self.view_center = (0, 0)
|
self.view_center = (0, 0)
|
||||||
self.view_width = 5.0
|
self.view_width = 4.0
|
||||||
self.size = (1, 1)
|
self.size = (1, 1)
|
||||||
try:
|
try:
|
||||||
# try double-buffered
|
# try double-buffered
|
||||||
@ -108,10 +108,21 @@ class SketchWidget:
|
|||||||
self.drawFilledLine(pt0[0], pt0[1], pt1[0], pt1[1], size)
|
self.drawFilledLine(pt0[0], pt0[1], pt1[0], pt1[1], size)
|
||||||
|
|
||||||
def drawCircle(self, shape, size):
|
def drawCircle(self, shape, size):
|
||||||
steps = 16
|
|
||||||
step = 2 * math.pi / steps
|
|
||||||
center = self.ptToScreenPt(shape.getCenter())
|
center = self.ptToScreenPt(shape.getCenter())
|
||||||
rad = self.distToScreenDist(shape.getRadius())
|
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):
|
for i in range(steps + 1):
|
||||||
angle = i * step
|
angle = i * step
|
||||||
next_angle = (i + 1) * step
|
next_angle = (i + 1) * step
|
||||||
|
Loading…
x
Reference in New Issue
Block a user