Python编程之几何图案


包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

本项目使用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)
玫瑰曲线函数使用参数方程来创建花瓣形状:
  • size:玫瑰的大小
  • petals:花瓣的数量
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)
这个函数通过不断增加边长来创建螺旋正方形:
  • size:起始边长
  • steps:螺旋的圈数
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)
  • 主函数按顺序在画布的不同位置绘制三种几何图案,创造出丰富的视觉效果

运行效果

运行程序后,你将看到:
    1. 左上方:一个青色的六边形螺旋图案
    1. 中心:一个品红色的六瓣玫瑰曲线
    1. 右上方:一个金色的螺旋正方形
这些图案组合在一起,在黑色背景上形成了一幅优美的几何艺术作品。通过调整函数参数,你可以创造出更多独特的图案效果。

在这里插入图片描述

扩展思考

    1. 尝试修改颜色组合,创造不同的视觉效果
    1. 调整各个函数的参数,观察图案的变化
    1. 添加新的几何图案,丰富画面的层次感
    1. 实现图案的动态效果,让作品更具生命力
通过这个项目,你不仅可以学习到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%免费在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值