Python Turtle绘图实战:15种经典图形与代码解析

白榆
白榆
发布时间:2026-10-12| 5人浏览过
原创

本文通过Python的Turtle库展示了15种经典图形的绘制方法,涵盖正弦曲线、彩色螺旋、几何图案及抽象艺术。文章提供完整可运行代码,详细解析参数设置、循环逻辑与颜色控制,适合Python初学者掌握图形编程技巧,快速实现创意绘图效果。

进入主题

1. 正弦曲线与彩色波浪

import turtle as t
import math
t.pensize(3)
t.tracer(10)
t.hideturtle()
start_x = -200
for y in range(-150,150,5):
    t.penup()
    t.goto(start_x,y)
    t.pendown()
    for x in range(-200,200,1):
        if ((y-50*(math.cos(0.05*x)) <= 80) and
            (y-50*(math.cos(0.05*x)) >= 60)):
            t.pencolor('yellow')
        elif ((y-50*(math.cos(0.05*x)) <= 40) and
            (y-50*(math.cos(0.05*x)) >= -20)):
            t.pencolor('blue')
        elif ((y-50*(math.cos(0.05*x)) <= -20) and
            (y-50*(math.cos(0.05*x)) >= -80)):
            t.pencolor('red')
        elif ((y-50*(math.cos(0.05*x)) <= -60) and
            (y-50*(math.cos(0.05)) <= -80)):
            t.pencolor('green')
        else:
            t.pencolor('black')
        t.setx(x)
t.update()
t.done()

import turtle as t
t.speed(0)
t.tracer(20)
t.hideturtle()
t.colormode(255)
angle = 90
for x in range(255,0,-5):
    for n in range(360//angle):
        t.pencolor((x,255,255))
        t.fillcolor((25,x,255))
        t.begin_fill()
        for i in range(2):
            t.forward(x)
            t.right(angle)
            t.forward(x)
            t.right(180-angle)
        t.end_fill()
        t.right(angle)
t.update()
t.done()

import turtle as t
t.speed(0)
t.tracer(20)
t.colormode(255)
angle = 60
angle2 = 3
for x in range(255,0,-5):
    for n in range(360//angle):
        t.pencolor((x,255,255))
        t.fillcolor((255,x,255))
        t.begin_fill()
        for i in range(2):
            t.forward(x)
            t.right(angle)
            t.forward(x)
            t.right(180-angle)
        t.end_fill()
        t.right(angle)
    t.right(angle2)
t.update()
t.done()

from turtle import *       
colormode(255)
tracer(5)
a1=39
a2=1
for x in range(255,0,-5):
    pencolor(x,255,255)
    fillcolor(255,x,255)
    for y in range(360//a1):
        begin_fill()
        for z in range(2):
            fd(x)
            rt(a1)
            fd(x)
            rt(180-a1)
        end_fill()
        rt(a1)
    rt(a2)
update()
ht()
done()

import turtle as t
t.speed(0)
t.hideturtle()
t.penup()
t.setx(-200)
t.pendown()
r = 20
i = 6
for x in range(10):
    if x % 2 == 0:
        t.fillcolor("skyblue")
        t.begin_fill()
        t.circle(r)
        t.end_fill()
        add = 0
    else:
        t.fillcolor("green")
        t.begin_fill()
        for n in range(4):
            t.forward(r*2)
            t.left(90)
        t.end_fill()
        add = r*2
    t.penup()
    t.forward(r+i+add)
    t.pendown()
t.done()

import turtle as t
t.pensize(5)
t.tracer(10)
t.hideturtle()
start_x = -200
for y in range(-150,150,20):
    t.penup()
    t.goto(start_x,y)
    t.pendown()
    for x in range(-200,200,1):
        if ((x < 100 and x > 0) and 
            (y < 80 and y > 0)):
            t.pencolor('yellow')
        elif ((x < 100 and x > 0) and
            (y < 0 and y > -80)):
            t.pencolor('blue')
        elif ((x < 0 and x > -100) and
            (y < 80 and y > 0)):
            t.pencolor('red')
        elif ((x < 0 and x > -100) and
            (y < 0 and y > -80)):
            t.pencolor('orange')
        else:
            t.pencolor('green')
        t.setx(x)
t.update()
t.done()

import turtle as t
t.pensize(5)
t.tracer(10)
t.hideturtle()
start_x = -200
for y in range(-150,150,20):
    t.penup()
    t.goto(start_x,y)
    t.pendown()
    for x in range(-200,200,1):
        if ((y-x <= 40) and
            (y-x >= -40)):
            t.pencolor('yellow')
        elif ((y+x <= 40) and
            (y+x >= -40)):
            t.pencolor('blue')
        else:
            t.pencolor('green')
        t.setx(x)
t.update()
t.done()

import turtle as t
t.speed(0)
t.tracer(20)
t.hideturtle()
t.colormode(255)
angle = 60
for x in range(255,0,-5):
    for n in range(360//angle):
        t.pencolor((x,255,255))
        t.fillcolor((255,x,255))
        t.begin_fill()
        for i in range(2):
            t.forward(x)
            t.right(angle)
            t.forward(x)
            t.right(180-angle)
        t.end_fill()
        t.right(angle)
t.update()
t.done()

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注本站的更多内容!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。