网络编程
位置:首页>> 网络编程>> Python编程>> turtle的基础使用之python turtle递归绘图

turtle的基础使用之python turtle递归绘图

作者:开始King  发布时间:2023-04-25 23:36:08 

标签:python,turtle,递归,绘图

1创建窗口

1 turtle.setup(width,height,startx,starty)设置主窗口的大小和位置,

  • width如果是整数,则以像素为单位的大小,如果是浮点数,则屏幕的一部分;默认为屏幕的 50%。

  • height 如果是整数,则以像素为单位的高度,如果是浮点数,则为屏幕的一部分;默认为屏幕的 75%

  • startx 如果为正,则从屏幕左边缘开始以像素为单位,如果从右边缘为负,如果没有,则水平居中窗口

  • starty如果为正,则从屏幕上边缘开始以像素为单位,如果为负,则从下边缘开始,如果没有,则垂直居中窗口

turtle.title 设置海龟窗口的标题

2 turtle.screensize(canvwidth=None, canvheight=None, bg=None),以像素为单位的宽,高。bg颜色字符串或颜色元组,新的背景颜色

2.画笔移动

"""
初始情况画笔面朝东位于画布中央
"""
turtle.penup()    # 抬起画笔
turtle.penup()    # 抬起画笔 不再画线
turtle.pendown()  # 放下画笔
turtle.forward(10) # 前进   整数或浮点数
turtle.backward(10) 
turtle.left(90)    # 向左   整数或浮点数
turtle.right(90)
turtle.goto()    # 移动画笔到绝对位置, 如果 y 为 None,x 必须是一对坐标或 Vec2D(例如,由 pos() 返回)
turtle.setx(x)  #将海龟的第一个坐标设置为 x,第二个坐标保持不变。  整数或浮点数
turtle.sety(y) # 
turtle.home()  # 将海龟回复到初始位置和初始方向 
turtle.circle(radius, extent=None, steps=None) # 画一个给定半径的圆
"""
radius 半径   如果半径为正,则按逆时针方向绘制圆弧,否则按顺时针方向绘制。
extent 角度   确定绘制圆的哪个部分。如果没有给出范围,则绘制整个圆圈

"""
turtle.speed()  # 画笔速度 0-10的整数 
"""
    “fastest”: 0
    “fast”: 10
    “normal”: 6
    “slow”: 3
    “slowest”: 1
    如果输入是大于 10 或小于 0.5 的数字,则速度设置为 0。
"""
turtle.position()  # 返回当前海龟的位置
turtle.pensize(width=None)  # 设置线条的宽度
turtle.pencolor(*args)  # 画笔的颜色   "red", "yellow",  "#33cc8c", (0.2, 0.8, 0.55)
turtle.done() #  让图像一直显示  启动事件循环 - 调用 Tkinter 的 mainloop 函数   必须是海龟图形程序中的最后一条语句。

还有一些不常见的

turtle.seth() # 角度, 但是每次旋转后小乌龟的方向恢复到正X方向,即东(east)
turtle.heading()  # 返回当前乌龟的方向
turtle.begin_fill() # 在绘制要填充的形状之前调用。
turtle.fillcolor(*args) # 填充色
turtle.end_fill() # 填充最后一次调用 begin_fill() 后绘制的形状。
import turtle
turtle.screensize(200, 100)
turtle.begin_fill()
turtle.fillcolor('blue')
turtle.forward(60)
turtle.left(120)
turtle.forward(60)
turtle.left(120)
turtle.forward(60)
turtle.end_fill()
turtle.done()

turtle的基础使用之python turtle递归绘图

3.递归画图

import turtle

# turtle.screensize(800,600, "white")
turtle.setup(width=0.6,height=0.6)
turtle.penup()
turtle.left(90)
turtle.forward(200)
turtle.pendown()
turtle.right(180)

def draw(n):
    if n==10:
        turtle.forward(30)
    if n<10:
        turtle.forward(30)
        turtle.right(90)
        turtle.forward(30)
        # 让画笔朝南
        turtle.left(90) 
        draw(n+1)   # 递归调用
        turtle.left(180)
        turtle.forward(30)
        turtle.right(90)
        turtle.forward(60)
        turtle.right(90)
        turtle.forward(30)  # 完成图形了,但是要把turtle归位
        # 接下来就是归位
        turtle.left(180)
        turtle.forward(30)
        turtle.left(90)
        turtle.forward(30)
        turtle.left(90)      

draw(0)
turtle.done()    # 画图完成后不会自动关闭

来源:https://blog.csdn.net/m0_52118763/article/details/123035104

0
投稿

猜你喜欢

  • 1. 复制表结构及其数据:create table table_name_new as select * from table_name_o
  • 用6N±1法求素数任何一个自然数,总可以表示成为如下的形式之一:6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…
  • 假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做pc;用来保存配件供货信息的表叫做parts。在pc
  • With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个
  • 1.int,float相互转换例1:int转float使用float(int)float转int使用int(float)# coding:u
  • 本文实例讲述了Python自动登录126邮箱的方法。分享给大家供大家参考。具体实现方法如下:import sys, urllib2, url
  • 敲了这么多年代码,每年都得画一些心啊花啊什么的,所以现在常规的已经有些倦怠了,至少也得来个三维图形才看着比较合理,而且光是三维的也没啥意思,
  • 简介特点请求你所要的数据,不多不少获取多个资源,只用一个请求描述所有的可能,类型系统几乎所有语言支持文档Graphene-PythonGra
  • 我们通常可以使用os模块的命令进行执行cmd方法一:os.systemos.system(执行的命令)# 源码def system(*arg
  • 1.过滤器的使用1.过滤器和测试器在Python中,如果需要对某个变量进行处理,我们可以通过函数来实现。在模板中,我们则是通过过滤器来实现的
  • 前言最近新来的小老弟问我,按照公司规定,电脑只有十分钟就锁屏,但是他不想让电脑在空闲十分钟后锁屏。于是我问他,是不是想挑战一下公司信息安全?
  • 很久之前就对jQuery.animate的实现非常感兴趣,不过前段时间很忙,直到前几天端午假期才有时间去研究。jQuery.animate的
  • 因为python默认使用的是国外镜像,有时候下载非常慢,最快的办法就是在下载命令中增加国内源:pip install requests -i
  • 前言一个表和多个表进行关联,但具体随着业务的加深,表不断的增加,关联的数量不断的增加,怎么通过一开始通过表的设计后,不在后期在修改表,彻底的
  • 本文实例总结了Python中字符串的常见操作技巧。分享给大家供大家参考,具体如下:反转一个字符串>>> S = '
  • 1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。2、1024*768下,网页宽度保持在1002
  • 题目:请求出任意区间[a,b]的所有素数,简单考虑实用性这道题看起来应该很easy是吧,但任意区间(这个问题有没get 到)Afanty的分
  • 为了从视频中提取每一帧图片,编写Python脚本实现该功能video_path为指定的视频路径interval为指定分割视频是是否跳帧,默认
  • 这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
  • 线性回归是一种常见的机器学习算法,也是人工智能中常用的算法。它是一种用于预测数值型输出变量与一个或多个自变量之间线性关系的方法。例如,你可以
手机版 网络编程 asp之家 www.aspxhome.com