包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!
本项目使用Python的Turtle模块创建了一系列引人入胜的几何图案。

实现原理
1. Turtle模块基础
Turtle模块是Python内置的图形绘制模块,它提供了一个虚拟的画笔(海龟),可以通过编程控制其移动来绘制各种图形。在本项目中,我们主要使用了以下Turtle功能:
- 画笔控制:penup()、pendown()、pensize()、pencolor()
- 移动命令:forward()、right()、goto()
- 点的绘制:dot()
- 文字绘制:write()
2. 数学原理
本项目中的几何图案涉及以下数学概念:
- 多边形:通过设置边数和角度来创建规则多边形
- 螺旋:通过逐步增加边长来创建螺旋效果
- 玫瑰曲线:使用参数方程 r = sin(nθ) 来创建玫瑰形状
- 正方形螺旋:通过90度转角和递增边长创建螺旋效果
代码讲解
1. 基本设置
首先,我们需要导入必要的模块并设置基本的画布环境:
import turtle
import math
screen = turtle.Screen()
screen.title("几何艺术")
screen.bgcolor("black")
screen.setup(width=800, height=600)
t = turtle.Turtle()
t.speed(0)
t.hideturtle()
- 这段代码设置了黑色背景的画布,并创建了一个隐藏的海龟对象用于绘图。
2. 多边形螺旋函数
def draw_polygon_spiral(sides, size, angle, steps):
t.pencolor("cyan")
t.pensize(2)
for i in range(steps):
t.forward(size + i * 2)
t.right(angle + 360/sides)
这个函数通过以下参数控制多边形螺旋的绘制:
- sides:多边形的边数
- size:起始边长
- angle:每步额外的旋转角度
- steps:螺旋的圈数
3. 玫瑰曲线函数
def draw_rose(size, petals):
t.pencolor("magenta")
t.pensize(2)
for angle in range(0, 360, 5):
rad = math.radians(angle)
r = size * math.sin(petals * rad)
x = r * math.cos(rad)
y = r * math.sin(rad)
t.penup()
t.goto(x, y)
t.pendown()
t.dot(10)
玫瑰曲线函数使用参数方程来创建花瓣形状:
4. 螺旋正方形函数
def draw_square_spiral(size, steps):
t.pencolor("gold")
t.pensize(2)
for i in range(steps):
t.forward(size + i * 5)
t.right(90)
这个函数通过不断增加边长来创建螺旋正方形:
5. 主函数设计
def main():
t.penup()
t.goto(-200, 100)
t.pendown()
draw_polygon_spiral(6, 5, 5, 50)
t.penup()
t.goto(0, 0)
t.pendown()
draw_rose(100, 6)
t.penup()
t.goto(200, 100)
t.pendown()
draw_square_spiral(5, 30)
- 主函数按顺序在画布的不同位置绘制三种几何图案,创造出丰富的视觉效果
运行效果
运行程序后,你将看到:
-
- 左上方:一个青色的六边形螺旋图案
-
- 中心:一个品红色的六瓣玫瑰曲线
-
- 右上方:一个金色的螺旋正方形
这些图案组合在一起,在黑色背景上形成了一幅优美的几何艺术作品。通过调整函数参数,你可以创造出更多独特的图案效果。

扩展思考
-
- 尝试修改颜色组合,创造不同的视觉效果
-
- 调整各个函数的参数,观察图案的变化
-
- 添加新的几何图案,丰富画面的层次感
-
- 实现图案的动态效果,让作品更具生命力
通过这个项目,你不仅可以学习到Python编程和数学知识,还能培养艺术创造力,体验编程的乐趣。
import turtle
import math
screen = turtle.Screen()
screen.title("几何艺术")
screen.bgcolor("black")
screen.setup(width=800, height=600)
t = turtle.Turtle()
t.speed(0)
t.hideturtle()
def draw_polygon_spiral(sides, size, angle, steps):
t.pencolor("cyan")
t.pensize(2)
for i in range(steps):
t.forward(size + i * 2)
t.right(angle + 360/sides)
def draw_rose(size, petals):
t.pencolor("magenta")
t.pensize(20)
for angle in range(0, 360, 5):
rad = math.radians(angle)
r = size * math.sin(petals * rad)
x = r * math.cos(rad)
y = r * math.sin(rad)
t.penup()
t.goto(x, y)
t.pendown()
t.dot(10)
def draw_square_spiral(size, steps):
t.pencolor("gold")
t.pensize(2)
for i in range(steps):
t.forward(size + i * 5)
t.right(90)
def main():
t.penup()
t.goto(-200, 100)
t.pendown()
draw_polygon_spiral(6, 5, 5, 50)
t.penup()
t.goto(0, 0)
t.pendown()
draw_rose(100, 6)
t.penup()
t.goto(200, 100)
t.pendown()
draw_square_spiral(5, 30)
t.penup()
t.goto(0, -250)
t.pencolor("white")
t.write("几何艺术示例", align="center", font=("Arial", 16, "normal"))
main()
screen.exitonclick()

总结
- 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
- 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
- ① Python所有方向的学习路线图,清楚各个方向要学什么东西
- ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
- ③ 100多个Python实战案例,学习不再是只会理论
- ④ 华为出品独家Python漫画教程,手机也能学习
可以扫描下方二维码领取【保证100%免费】