Logo Search packages:      
Sourcecode: inkscape version File versions  Download package

pturtle.py

#!/usr/bin/env python
'''
Copyright (C) 2005 Aaron Spike, aaron@ekips.org

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
'''
import math
00020 class pTurtle:
      '''A Python path turtle'''
      def __init__(self, home=(0,0)):
            self.__home = [home[0], home[1]]
            self.__pos = self.__home[:]
            self.__heading = -90
            self.__path = ""
            self.__draw = True
            self.__new = True
      def forward(self,mag):
            self.setpos((self.__pos[0] + math.cos(math.radians(self.__heading))*mag,
                  self.__pos[1] + math.sin(math.radians(self.__heading))*mag))
      def backward(self,mag):
            self.setpos((self.__pos[0] - math.cos(math.radians(self.__heading))*mag,
                  self.__pos[1] - math.sin(math.radians(self.__heading))*mag))
      def right(self,deg):
            self.__heading -= deg
      def left(self,deg):
            self.__heading += deg
      def penup(self):
            self.__draw = False
            self.__new = False
      def pendown(self):
            if not self.__draw:
                  self.__new = True
            self.__draw = True
      def pentoggle(self):
            if self.__draw:
                  self.penup()
            else:
                  self.pendown()
      def home(self):
            self.setpos(self.__home)
      def clean(self):
            self.__path = ''
      def clear(self):
            self.clean()
            self.home()
      def setpos(self,(x,y)):
            if self.__new:
                  self.__path += "M"+",".join([str(i) for i in self.__pos])
                  self.__new = False
            self.__pos = [x, y]
            if self.__draw:
                  self.__path += "L"+",".join([str(i) for i in self.__pos])
      def getpos(self):
            return self.__pos[:]
      def setheading(self,deg):
            self.__heading = deg
      def getheading(self):
            return self.__heading
      def sethome(self,(x,y)):
            self.__home = [x, y]
      def getPath(self):
            return self.__path
      fd = forward
      bk = backward
      rt = right
      lt = left
      pu = penup
      pd = pendown

Generated by  Doxygen 1.6.0   Back to index