Python turtle 小项目

本文介绍了使用Python的Turtle库绘制多种图形的方法,包括爱心、雪花、太阳花及更复杂的有规律图形,通过调整参数可以创造出不同的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用turtle绘制各种曲线

一、爱心

首先,导入需要的turtle海龟和math数学库

import turtle as tt
from math import *

 设置画笔参数

tt.speed(0)
tt.pensize(4)
tt.pencolor("red")
tt.pu()

计算爱心桃下一个点的坐标公式:

x=a[15(sin t)^{3}]

y=a(15 cos t-5cos2t-2cos3t-cos4t)

在代码中添加函数

def args(a,t):
    x=a*(15*(sin(t)**3))
    y=a*(15*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))
    return x,y

循环

while t<=360:
    tt.goto(args(a,t))
    tt.pd()
    t+=1

最后让turtle窗口保持显示

tt.done()

最终代码

import turtle as tt
from math import *

def args(a,t):
    x=a*(15*(sin(t)**3))
    y=a*(15*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))
    return x,y

tt.speed(0)
tt.pensize(4)
tt.pencolor("red")
tt.pu()
a,t=8,0
while t<=360:
    tt.goto(args(a,t))
    tt.pd()
    t+=1
tt.done()

二、雪花

导入所需要的模块

import turtle as t
import random

定义函数

def snow(leng):
    if leng>2:
        t.pd()
        for i in range(6):
            snow(leng/3)
            t.forward(leng)
            t.left(60)
            t.forward(leng)
            t.right(120)
            t.pencolor(random.choice(["red","green","purple","blue","yellow"]))
        t.pu()

设置画笔参数

t.delay(0)
t.speed(0)
t.tracer(20)
t.pensize(4)
t.pencolor("blue")

执行画雪花的函数

snow(100)

让屏幕保持显示

t.done()

最终代码

import turtle as t
import random

def snow(leng):
    if leng>2:
        t.pd()
        for i in range(6):
            snow(leng/3)
            t.forward(leng)
            t.left(60)
            t.forward(leng)
            t.right(120)
            t.pencolor(random.choice(["red","green","purple","blue","yellow"]))
        t.pu()

t.delay(0)
t.speed(0)
t.tracer(20)
t.pensize(4)
t.pencolor("blue")
snow(100)
t.done()

三、太阳花

 导入需要的模块

import turtle as t

设置画笔属性

t.speed(0)
t.pencolor("red")
t.fillcolor("yellow")
t.pensize(2)

设置变量

n=40
degree=360/n
leng=300

绘制太阳花

t.begin_fill()
for i in range(n):
    t.forward(leng)
    t.left(180-degree)
t.end_fill()

窗口保持显示

t.done()

最终代码

import turtle as t

t.speed(0)
t.pencolor("red")
t.fillcolor("yellow")
t.pensize(2)

n=40
degree=360/n
leng=300

t.begin_fill()
for i in range(n):
    t.forward(leng)
    t.left(180-degree)
t.end_fill()

t.done()

注:n表示太阳花角的数量的多和少(需要被360整除),leng表示太阳花的直径,这两个变量的值可以自己修改

当n=60

 

当n=20

 


四、有规律的图形

1

效果:

代码 :

import turtle as t

n=30 # 个数
degree=360/n
leng=100 # 边长

t.speed(0) # 速度
t.pencolor("blue") # 颜色

for i in range(n):
    for j in range(4):
        t.forward(leng)
        t.right(90)
    t.right(degree)

t.done()

 2

效果:

代码:

import turtle as t
import random

de=10 # 每根树枝的倾斜角度

def tree(x,y,degree,length,n):
    if n<=5:
        t.pencolor("green")
    else:
        t.pencolor("brown")
    t.pu()
    t.goto(x,y)
    t.setheading(degree)
    t.pd()
    t.forward(length)
    if n==1:
        return
    else:
        pos=t.pos()
        tree(pos[0],pos[1],degree+de+random.randint(-5,5),length+random.randint(-5,5),n-1 if random.randint(1,100)<=90 else n)
        tree(pos[0],pos[1],degree-de+random.randint(-5,5),length+random.randint(-5,5),n-1 if random.randint(1,100)<=90 else n)

t.speed(0)
t.delay(0)
t.tracer(400)
tree(0,-300,90,30,10)
t.done()

 


制作不易,喜欢的话点赞关注哦!

Python实现一些小道具小功能(Python implements some small props) Image-Edit 几个基本的图片编辑工具,包括一下功能: 文件:打开,保存,退出 编辑:放大,缩小,灰度,亮度,旋转,截图 变换:傅里叶变换,离散余弦变换,Radon变换 噪声:高斯,椒盐,斑点,泊松 滤波:高通,低通,平滑,锐化 直方图统计:R直方图,G直方图,B直方图 图像增强:伪彩色,真彩色,直方图均衡,NTSC颜色模型,YCbCr颜色模型,HSV颜色模型 阈值分割 生态学处理 特征提取 图像分类与识别 Beautify-Camera 主要功能 文件:打开,保存,打开摄像头 操作:还原,人脸识别 滤镜:怀旧,木刻,灰色,彩色,风格化,增强细节 调节:亮度,饱和度,伽马变换,边缘保持 磨皮美白:美白度,磨皮程度,磨皮精度 灰度直方图 Calculator 主要功能 基本的加减乘除和开根号等运算 Painting绘画 主要功能 File:新建画板,打开图片,保存图片 Edit:复制,清空画板 Image:翻转 工具:基本画笔,橡皮擦,图形创建工具等 编辑区,色彩调节区,字体调节区等 NotePad 主要功能 基本文本编辑,类似于记事本 RandomPassWord 主要功能 随机生成一串密码,包括大小写字母,数字,符号,可指定长度 Browser 主要功能 基本浏览器功能 MusicPlayer 主要功能 音乐播放器 PyTunes 主要功能 轻量级音乐播放器
### Python Turtle项目示例与教程 #### 使用Turtle库绘制复杂图形 Turtle库作为Python标准库的一部分,提供了强大的功能来实现各种复杂的图形绘制。以下是几个常见的项目示例及其代码。 --- #### 示例1:自动画树 此项目展示了如何利用递归方法绘制一棵分形树。通过调整参数可以改变树木的形状和大小。 ```python from turtle import * colormode(255) lt(90) lv = 14 l = 120 s = 45 width(lv) r = 0 g = 0 b = 0 pencolor(r, g, b) penup() bk(l) pendown() fd(l) def draw_tree(length, level): global r, g, b w = width() width(w * 3.0 / 4.0) r += 1 g += 2 b += 3 pencolor(r % 200, g % 200, b % 200) length *= 0.75 lt(s) fd(length) if level < lv: draw_tree(length, level + 1) bk(length) rt(2 * s) fd(length) if level < lv: draw_tree(length, level + 1) bk(length) lt(s) width(w) speed("fastest") draw_tree(l, 4) done() ``` 这段代码实现了动态变化的颜色以及分支结构[^3]。 --- #### 示例2:绘制五角星 这是一个简单的例子,用于展示如何使用循环绘制多个五角星。 ```python from turtle import * def draw_star(x, y): pu() goto(x, y) pd() seth(0) for _ in range(5): fd(40) rt(144) for x in range(0, 250, 50): draw_star(x, 0) done() ``` 该程序定义了一个`draw_star`函数并多次调用它,在不同位置绘制五角星[^3]。 --- #### 示例3:螺旋线图案 下面是一个有趣的螺旋线图案生成器,其中每一步都会稍微旋转角度以形成美丽的曲线效果。 ```python import turtle as t t.speed('fastest') for i in range(18): t.forward(i*10) t.right(90) t.done() ``` 这里通过不断增加步长和固定转向角度构建出了一个逐渐扩大的方形螺旋路径[^4]。 --- #### 示例4:响应鼠标点击事件 还可以结合用户的交互操作完成更有趣的应用场景,比如让用户决定下一步要做什么。 ```python import turtle as t s = t.getscreen() s.onclick(t.goto) # 当用户单击屏幕时,海龟会移动到那个点 t.done() ``` 这允许玩家控制角色的位置,增加了趣味性和互动性[^2]。 --- ### 总结 以上仅列举了一些基本但非常实用的例子,实际上基于这些基础知识还能开发更多创意十足的作品。无论是教育还是娱乐领域,Turtle都展现出了其独特魅力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值