python-turtle画图study
  D6thgMEsi5wL 2023年12月12日 15 0

参考

turtle — Turtle graphics — Python 3.12.1 documentation(官方教程)

官方中文教程

C语言中文网教程(入门嘎嘎快)

(这把子没找到视频啥的)

绘制正方形

# 绘制正方形
import turtle

turtle.Screen()
# 设置线条(笔)的颜色
turtle.colormode(255)  # 设置颜色模式为全局 RGB: 0-255
list_pencolor = [(1,3,34), (2,5,50),(10,34,88),(26,99,150)]
# 设置填充颜色
turtle.fillcolor('pink')
turtle.begin_fill()  # 开始填充颜色
# 使用循环绘制正方形的边(4个边的颜色不一样)
for i in range(4):
    turtle.pencolor(list_pencolor[i])   
    turtle.forward(50)
    turtle.left(90)
# 结束颜色填充
turtle.end_fill()
turtle.done()

python-turtle画图study_官方教程

绘制学号

import turtle


class TurtleNum:
    def __init__(self,xh, edge_size=50,distance=25):
        self.edge_size = edge_size
        self.xh = xh
        self.distance = distance

    def beforenum(self, loc):
        """
        默认在所画数字的底角,并且方向指向右
        """
        turtle.goto(loc)
        turtle.setheading(0)  # 默认朝向东
        # turtle.forward(self.forward_distance)

    def plotzero(self, loc):
        turtle.penup()
        self.beforenum(loc)
        turtle.pendown()
        list_distance = [self.edge_size, self.edge_size * 2]
        for i in range(4):
            turtle.forward(list_distance[i % 2])
            turtle.left(90)  # 绘制长方形,向左旋转90°
        # 结束跳转到该数字的右下角
        turtle.penup()
        (x,y) = turtle.pos()  # 返回当前的位置
        turtle.goto(x+self.edge_size,y)

    def plotone(self, loc):
        turtle.penup()
        self.beforenum(loc)
        # 绘制数字1
        default_size = 10
        turtle.left(90)  # 朝向上
        turtle.pendown()
        turtle.forward(self.edge_size * 2)
        turtle.penup()
        # 返回右下角
        pos = turtle.pos()
        turtle.goto(pos[0],pos[1]-2*self.edge_size)

    def plottwo(self,loc):
        self.beforenum((loc[0]+self.edge_size,loc[1]))   # 2需要移到右下方点
        # 移动小海龟位置到右下角,方便一笔画
        turtle.left(180)  # 调转方向
        turtle.pendown()
        list_angle = [-90, -90, 90, 90,90]
        for i in range(5):
            turtle.forward(self.edge_size)
            turtle.left(list_angle[i])
        turtle.penup()
        (x,y) = turtle.pos()
        turtle.goto(x+self.edge_size,y-2*self.edge_size)

    def plotfive(self,loc):
        # 先准备好光标位置+方向
        turtle.penup()
        self.beforenum(loc)
        list_angle = [90,90,-90,-90,0]
        # 开始画图
        turtle.pendown()
        for i in range(5):
            turtle.forward(self.edge_size)
            turtle.left(list_angle[i])
        # 绘制完成以后光标回到右下角
        turtle.penup()
        pos = turtle.pos()
        turtle.goto((pos[0],pos[1]-2*self.edge_size))

    def plotsix(self,loc):
        # 初始位置在左下角,需要移动到6的中间的左边点
        turtle.penup()
        self.beforenum((loc[0],loc[1]+self.edge_size))
        # 设置角度
        list_angle = [-90,-90,-90,0,-90,0]
        # 开始画图
        turtle.pendown()
        for i in range(6):
            turtle.forward(self.edge_size)
            turtle.left(list_angle[i])
        # 光标归位至右下角
        turtle.penup()
        pos = turtle.pos()
        turtle.goto((pos[0],pos[1]-2*self.edge_size))






    def main(self):
        for i in self.xh:
            pos = turtle.pos()
            pos_ = (pos[0]+self.distance,pos[1])
            if i == "0":
                self.plotzero(pos_)
            elif i == "1":
                self.plotone(pos_)
            elif i == "2":
                self.plottwo(pos_)
            elif i == "5":
                self.plotfive(pos_)
            elif i == "6":
                self.plotsix(pos_)


input_str = "10522"
turtle.Screen()
my_xh = TurtleNum(input_str)
my_xh.main()
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

D6thgMEsi5wL
作者其他文章 更多