Skip to content

Commit e921f79

Browse files
committed
make circle and dot always use degrees internally
1 parent 06de267 commit e921f79

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

adafruit_turtle.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,12 @@ def circle(
626626
# --or: circle(radius, extent) # arc
627627
# --or: circle(radius, extent, steps)
628628
# --or: circle(radius, steps=6) # 6-sided polygon
629+
change_back = False
630+
if not self._in_degrees():
631+
change_back = True
632+
original_mode = "standard" if not self._logomode else "logo"
633+
self.degrees()
634+
self.mode("standard")
629635
pos = self.pos()
630636
h = self._heading
631637
if extent is None:
@@ -647,6 +653,9 @@ def circle(
647653
# get back to exact same position and heading
648654
self.goto(pos)
649655
self.setheading(h)
656+
if change_back:
657+
self.radians()
658+
self.mode(original_mode) # pylint: disable=possibly-used-before-assignment
650659

651660
# pylint:disable=inconsistent-return-statements
652661
def speed(self, speed: Optional[int] = None) -> Optional[int]:
@@ -690,6 +699,13 @@ def dot(self, size: Optional[int] = None, color: Optional[int] = None) -> None:
690699
:param color: the color of the dot
691700
692701
"""
702+
change_back = False
703+
if not self._in_degrees():
704+
change_back = True
705+
original_mode = "standard" if not self._logomode else "logo"
706+
print(f"old mode: {original_mode}")
707+
self.degrees()
708+
self.mode("standard")
693709
if size is None:
694710
size = max(self._pensize + 4, self._pensize * 2)
695711
if color is None:
@@ -713,6 +729,9 @@ def dot(self, size: Optional[int] = None, color: Optional[int] = None) -> None:
713729
self._pensize = 1
714730
self._plot(self._x, self._y, color)
715731
self._pensize = pensize
732+
if change_back:
733+
self.radians()
734+
self.mode(original_mode) # pylint: disable=possibly-used-before-assignment
716735

717736
def stamp(
718737
self,
@@ -882,6 +901,10 @@ def degrees(self, fullcircle: float = 360) -> None:
882901
"""
883902
self._setDegreesPerAU(fullcircle)
884903

904+
def _in_degrees(self) -> bool:
905+
print(self._degreesPerAU)
906+
return self._degreesPerAU == 1.0
907+
885908
def radians(self) -> None:
886909
"""Set the angle measurement units to radians.
887910
Equivalent to degrees(2*math.pi)."""

0 commit comments

Comments
 (0)