【16】python使用turtle库绘画

本文介绍了使用Python的turtle库来绘制五角星和树。首先展示了如何通过顺序结构画五角星,接着使用循环结构简化了画五角星的过程。然后,引入了递归函数drawFivePiontedStar来绘制五角星。最后,利用递归函数branch实现了画树的算法,模拟了树的分支结构。
部署运行你感兴趣的模型镜像

画蛇

import turtle

def drawSnake(rad, angle, len, neckrad):  #
    for i in range(len):
        turtle.circle(rad, angle)   # 画圆 rad:圆半径 angle:圆弧度
        turtle.circle(-rad, angle)
    turtle.circle(rad, angle/2)
    turtle.fd(rad)  # 表示直线爬行,forward, 参数表示爬行的距离
    turtle.circle(neckrad+1, 180)
    turtle.fd(rad*2/3)
def main():
    turtle.setup(1300, 800, 0, 0)   # 甚至窗口宽+高+起始x/y
    pythonsize = 100
    turtle.pensize(pythonsize)   # 设置笔的宽度
    turtle.pencolor("red")  # 设置笔的颜色
    turtle.seth(-40)  # 设置笔的起始角度
    drawSnake(40, 80, 5, pythonsize/2)
main()

""""
python 的调用方式
1:import 库名
调用的时:库.函数名
优点:可以更改函数中函数的名字
2, from 库名 import 函数名

"""


画五角星

顺序结构
    import turtle
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    turtle.seth(0)
    turtle.fd(400)
    turtle.seth(-144)
    turtle.fd(400)
    turtle.seth(-144-144)
    turtle.fd(400)
    turtle.seth(-144 - 144-144)
    turtle.fd(400)
    turtle.seth(-144 - 144-144-144)
    turtle.fd(400)
循环结构   
    import turtle
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    turtle.seth(0)
    length = 400
    angle = 0
    for i in range(5):
        turtle.fd(length)
        angle = angle - 144
        turtle.seth(angle)
循环递归函数
import turtle
def drawFivePiontedStar(length, angle):
    """
    Draw five_pointed_star by turtle library
    Initial screen ;width+height+initial position
    Initial pen: font+color
    Drawing line by recursive_function
    :param length: Initial five_pointed_star length
    :param angle: Initial position
    :return: None
    """
    def drawline(length, angle):
        turtle.seth(angle)
        turtle.fd(length)
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    for i in range(5):
        drawline(length, angle)
        angle = angle-144

if __name__ == "__main__":
    drawFivePiontedStar(400, 0)



画树

import turtle
def branch(length, level):
    """
    使用递归函数实现画树
    以没有树杈为例
    起始角度为90°
    向左转换角45°,看有没有树杈(level)
    如果没有,向右转换角90°(-45),看有没有树杈
    如果没有,向右转换45°(0),返回原路
    """
    if level <= 0:
        return

    turtle.forward(length)
    turtle.left(45)
    branch(0.6 * length, level - 1)  # 90
    turtle.right(90)
    branch(0.6 * length, level - 1)
    turtle.left(45)
    turtle.backward(length)
    return


if __name__ == "__main__":

    turtle.left(90)
    branch(100, 3)



您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python 的`turtle`个简单易用的绘图,可通过系列指令控制个小海龟在屏幕上移动并绘制图形。要使用`turtle`绘制校园图片,可按以下步骤实现: ### 1. 导入`turtle` ```python import turtle ``` ### 2. 设置画布和画笔 ```python # 设置画布大小和位置 turtle.setup(800, 600, 200, 200) # 创建画笔对象 pen = turtle.Turtle() # 设置画笔速度,范围 0-10,0 最快 pen.speed(5) ``` ### 3. 绘制校园元素 #### 绘制教学楼 ```python def draw_building(): pen.penup() pen.goto(-200, -100) pen.pendown() # 绘制教学楼主体 pen.color("gray") pen.begin_fill() for _ in range(2): pen.forward(300) pen.left(90) pen.forward(200) pen.left(90) pen.end_fill() # 绘制窗户 pen.penup() pen.goto(-150, -50) pen.pendown() pen.color("blue") for i in range(3): for j in range(3): pen.penup() pen.goto(-150 + j * 50, -50 + i * 50) pen.pendown() pen.begin_fill() for _ in range(4): pen.forward(30) pen.left(90) pen.end_fill() ``` #### 绘制操场 ```python def draw_playground(): pen.penup() pen.goto(100, -150) pen.pendown() pen.color("green") pen.begin_fill() pen.circle(150) pen.end_fill() ``` #### 绘制树木 ```python def draw_tree(): pen.penup() pen.goto(-300, 0) pen.pendown() # 绘制树干 pen.color("brown") pen.begin_fill() for _ in range(2): pen.forward(20) pen.left(90) pen.forward(100) pen.left(90) pen.end_fill() # 绘制树冠 pen.penup() pen.goto(-310, 100) pen.pendown() pen.color("green") pen.begin_fill() pen.circle(30) pen.end_fill() ``` ### 4. 调用绘制函数 ```python draw_building() draw_playground() draw_tree() ``` ### 5. 隐藏画笔并保持窗口打开 ```python pen.hideturtle() turtle.done() ``` ### 完整代码示例 ```python import turtle # 设置画布大小和位置 turtle.setup(800, 600, 200, 200) # 创建画笔对象 pen = turtle.Turtle() # 设置画笔速度,范围 0-10,0 最快 pen.speed(5) def draw_building(): pen.penup() pen.goto(-200, -100) pen.pendown() # 绘制教学楼主体 pen.color("gray") pen.begin_fill() for _ in range(2): pen.forward(300) pen.left(90) pen.forward(200) pen.left(90) pen.end_fill() # 绘制窗户 pen.penup() pen.goto(-150, -50) pen.pendown() pen.color("blue") for i in range(3): for j in range(3): pen.penup() pen.goto(-150 + j * 50, -50 + i * 50) pen.pendown() pen.begin_fill() for _ in range(4): pen.forward(30) pen.left(90) pen.end_fill() def draw_playground(): pen.penup() pen.goto(100, -150) pen.pendown() pen.color("green") pen.begin_fill() pen.circle(150) pen.end_fill() def draw_tree(): pen.penup() pen.goto(-300, 0) pen.pendown() # 绘制树干 pen.color("brown") pen.begin_fill() for _ in range(2): pen.forward(20) pen.left(90) pen.forward(100) pen.left(90) pen.end_fill() # 绘制树冠 pen.penup() pen.goto(-310, 100) pen.pendown() pen.color("green") pen.begin_fill() pen.circle(30) pen.end_fill() draw_building() draw_playground() draw_tree() pen.hideturtle() turtle.done() ``` ### 代码解释 - **导入`turtle`**:使用`import turtle`导入`turtle`。 - **设置画布和画笔**:使用`turtle.setup()`设置画布大小和位置,创建画笔对象并设置画笔速度。 - **绘制校园元素**:定义不同的函数来绘制教学楼、操场和树木等校园元素。 - **调用绘制函数**:依次调用绘制函数来绘制校园图片。 - **隐藏画笔并保持窗口打开**:使用`pen.hideturtle()`隐藏画笔,使用`turtle.done()`保持窗口打开。 通过以上步骤,就可以使用`turtle`绘制出简单的校园图片。可以根据需要进步扩展和优化代码,添加更多的校园元素和细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值