海龟画图原理类Pointer类

海龟画图原理类Pointer类

以下是部分代码预览。

"""
  海龟画图原理类Pointer类,
  本程序提供Pointer类,它的移动方式和海龟一样,
  这个程序抽象出Python海龟画图最基本的原理以肆读者。
  
"""

__author__ = '李兴球'
__date__ = '2020/03/30'
__blog__ = 'www.lixingqiu.com'

import math

class Pointer:
    def __init__(self,pos=(0,0),angle=0):
        """
           初始化方法,pos:坐标,angle:角度
        """
        self._angle = angle        # 朝向,也就是和x轴的夹角angle
        self._pos = pos            # 初始坐标               
        
    def setheading(self,angle):
        """设置朝向"""
        self._angle = angle
        
    def heading(self):
        """返回朝向"""
        return self._angle
    
    def right(self,dangle):
        """右转dangle度"""
        self._angle -= dangle
        self.setheading(self._angle)

    def left(self,dangle):
        """左转dangle度"""
        self.right(-dangle)        

    def position(self):
        """返回坐标"""
        return self._pos
    
    def goto(self,x,y=None):
        """到某坐标"""
        if y == None:
            self._pos = x[0],x[1]
        else:
            self._pos = x,y
        
    以下代码省略......



def main():
   """主要执行函数"""
   n = 6
   pos = (100,100)
   angle = 0 
   t = Pointer(pos,angle)           # 实例化一个指针
   points = []                      # 收集坐标点的列表
   for _ in range(n):
       points.append(t.position())  # 把指针当前坐标加到列表
       t.forward(100)               # 指针前进100个单位
       t.left(360/n)                # 指针左转360/n度 
   print(points)
   # 下面新建海龟把每个坐标点都打印出来
   x = Turtle()
   x.penup()
   for p in points:
       x.goto(p)
       x.dot(10)
   x.screen.mainloop()

if __name__ == "__main__":
    
    from turtle import *
    main() 

下载完整源代码与素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。