MCPcopy Create free account
hub / github.com/codemistic/Data-Structures-and-Algorithms / TNavigator

Class TNavigator

Python/Turtle.py:1409–1917  ·  view source on GitHub ↗

Navigation part of the RawTurtle. Implements methods for turtle movement.

Source from the content-addressed store, hash-verified

1407 onkeyrelease = onkey
1408
1409class TNavigator(object):
1410 """Navigation part of the RawTurtle.
1411 Implements methods for turtle movement.
1412 """
1413 START_ORIENTATION = {
1414 "standard": Vec2D(1.0, 0.0),
1415 "world" : Vec2D(1.0, 0.0),
1416 "logo" : Vec2D(0.0, 1.0) }
1417 DEFAULT_MODE = "standard"
1418 DEFAULT_ANGLEOFFSET = 0
1419 DEFAULT_ANGLEORIENT = 1
1420
1421 def __init__(self, mode=DEFAULT_MODE):
1422 self._angleOffset = self.DEFAULT_ANGLEOFFSET
1423 self._angleOrient = self.DEFAULT_ANGLEORIENT
1424 self._mode = mode
1425 self.undobuffer = None
1426 self.degrees()
1427 self._mode = None
1428 self._setmode(mode)
1429 TNavigator.reset(self)
1430
1431 def reset(self):
1432 """reset turtle to its initial values
1433
1434 Will be overwritten by parent class
1435 """
1436 self._position = Vec2D(0.0, 0.0)
1437 self._orient = TNavigator.START_ORIENTATION[self._mode]
1438
1439 def _setmode(self, mode=None):
1440 """Set turtle-mode to 'standard', 'world' or 'logo'.
1441 """
1442 if mode is None:
1443 return self._mode
1444 if mode not in ["standard", "logo", "world"]:
1445 return
1446 self._mode = mode
1447 if mode in ["standard", "world"]:
1448 self._angleOffset = 0
1449 self._angleOrient = 1
1450 else: # mode == "logo":
1451 self._angleOffset = self._fullcircle/4.
1452 self._angleOrient = -1
1453
1454 def _setDegreesPerAU(self, fullcircle):
1455 """Helper function for degrees() and radians()"""
1456 self._fullcircle = fullcircle
1457 self._degreesPerAU = 360/fullcircle
1458 if self._mode == "standard":
1459 self._angleOffset = 0
1460 else:
1461 self._angleOffset = fullcircle/4.
1462
1463 def degrees(self, fullcircle=360.0):
1464 """ Set angle measurement units to degrees.
1465
1466 Optional argument:

Callers

nothing calls this directly

Calls 1

Vec2DClass · 0.85

Tested by

no test coverage detected