Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions Lib/turtle.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,12 +263,12 @@ def __sub__(self, other):
def __neg__(self):
return Vec2D(-self[0], -self[1])
def __abs__(self):
return (self[0]**2 + self[1]**2)**0.5
return math.hypot(*self)
def rotate(self, angle):
"""rotate self counterclockwise by angle
"""
perp = Vec2D(-self[1], self[0])
angle = angle * math.pi / 180.0
angle = math.radians(angle)
c, s = math.cos(angle), math.sin(angle)
return Vec2D(self[0]*c+perp[0]*s, self[1]*c+perp[1]*s)
def __getnewargs__(self):
Expand Down Expand Up @@ -1597,7 +1597,7 @@ def radians(self):
>>> turtle.heading()
1.5707963267948966
"""
self._setDegreesPerAU(2*math.pi)
self._setDegreesPerAU(math.tau)

def _go(self, distance):
"""move turtle forward by specified distance"""
Expand Down Expand Up @@ -1888,7 +1888,7 @@ def towards(self, x, y=None):
elif isinstance(x, TNavigator):
pos = x._position
x, y = pos - self._position
result = round(math.atan2(y, x)*180.0/math.pi, 10) % 360.0
result = round(math.degrees(math.atan2(y, x)), 10) % 360.0
result /= self._degreesPerAU
return (self._angleOffset + self._angleOrient*result) % self._fullcircle

Expand All @@ -1903,7 +1903,7 @@ def heading(self):
67.0
"""
x, y = self._orient
result = round(math.atan2(y, x)*180.0/math.pi, 10) % 360.0
result = round(math.degrees(math.atan2(y, x)), 10) % 360.0
result /= self._degreesPerAU
return (self._angleOffset + self._angleOrient*result) % self._fullcircle

Expand Down Expand Up @@ -1976,7 +1976,7 @@ def circle(self, radius, extent = None, steps = None):
steps = 1+int(min(11+abs(radius)/6.0, 59.0)*frac)
w = 1.0 * extent / steps
w2 = 0.5 * w
l = 2.0 * radius * math.sin(w2*math.pi/180.0*self._degreesPerAU)
l = 2.0 * radius * math.sin(math.radians(w2)*self._degreesPerAU)
if radius < 0:
l, w, w2 = -l, -w, -w2
tr = self._tracer()
Expand Down Expand Up @@ -2861,7 +2861,7 @@ def settiltangle(self, angle):
>>> turtle.fd(50)
"""
tilt = -angle * self._degreesPerAU * self._angleOrient
tilt = (tilt * math.pi / 180.0) % (2*math.pi)
tilt = math.radians(tilt) % math.tau
self.pen(resizemode="user", tilt=tilt)

def tiltangle(self, angle=None):
Expand All @@ -2885,7 +2885,7 @@ def tiltangle(self, angle=None):
>>> turtle.tiltangle()
"""
if angle is None:
tilt = -self._tilt * (180.0/math.pi) * self._angleOrient
tilt = -math.degrees(self._tilt) * self._angleOrient
return (tilt / self._degreesPerAU) % self._fullcircle
else:
self.settiltangle(angle)
Expand Down Expand Up @@ -2939,7 +2939,7 @@ def shapetransform(self, t11=None, t12=None, t21=None, t22=None):
if t11 * t22 - t12 * t21 == 0:
raise TurtleGraphicsError("Bad shape transform matrix: must not be singular")
self._shapetrafo = (m11, m12, m21, m22)
alfa = math.atan2(-m21, m11) % (2 * math.pi)
alfa = math.atan2(-m21, m11) % math.tau
sa, ca = math.sin(alfa), math.cos(alfa)
a11, a12, a21, a22 = (ca*m11 - sa*m21, ca*m12 - sa*m22,
sa*m11 + ca*m21, sa*m12 + ca*m22)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
turtle uses math module functions to convert degrees to radians and vice versa and to calculate vector norm