利用Python绘制图案——七色花子

一、效果图

真·彩色螺旋丸

二、程序分析

本次程序我们依然是使用turtle库进行绘制的,因此在我们的程序第一行就是加载我们Python的turtle库了,不了解的同学可以参看我的上一篇博客哦。
接下来就是对我们的程序进行分析了,观察我们的效果图,发现本次的程序和上一次的程序有着一个相同之处——螺旋。上次我们绘制了螺旋的正方形,我们这一次绘制螺旋的正七边形,那么绘制正七边形的程序和上一次绘制正方形的程序就是大同小异了:

for i in range(300):
    turtle.forward(i)
    turtle.left(360/7+1)
turtle.done()

螺旋的正七边形我们已经绘制完毕,下一步就是给我们的正七边形进行上色了。改变画笔颜色我们这里将要用到turtle的内置函数:turtle.pencolor(),给这个函数传递一个颜色名字,我们的画笔颜色就会发生改变。

# 直接传递颜色名字
turtle.pencolor('red')
turtle.pencolor('#33cc8c')
# RGB模式首先要改变模式再传递RGB值
turtle.colormode(255)
turtle.pencolor(255,25,25)

我们本次程序使用的颜色有:‘red’,‘orange’,‘yellow’,‘green’,‘cyan’,‘blue’,‘purple’
然后将我们的颜色添加进列表里面:

colors = ['red','orange','yellow','green','cyan','blue','purple']

接下来我们让每一次画一条边的时候都改变一次颜色,把pencolor添加进循环,这样每一次循环就改变一次颜色:

colors = ['red','orange','yellow','green','cyan','blue','purple']
for x in range(300):
    turtle.pencolor(colors[x%len(colors)])
    turtle.forward(x)
    turtle.left(360/len(colors)+1)
turtle.done()

大家这个时候可能会发现我们的画作颜色太不显眼了,而且每一条边的宽度都是一个样样的,一点都不够炫酷啊!我们通过下面的方式来解决这两个问题。
首先解决对比度的问题,要么我们就一个一个为花朵找颜色,找到对比度强的颜色。另一种解决方式就是更换画布,也就是背景,既然白色太显眼了,那我们就用黑色,这下对比度应该就高了吧。改变画布颜色我们使用turtle.bgcolor()函数,使用方法和改变画笔颜色类似,来将我们的画布换成黑色的:

turtle.bgcolor('black')

下一个问题是改变画笔的宽度,这一次我们需要使用turtle.pensize()这个函数,为它传递一个数字就能改变画笔的宽度:

for x in range(300):
	turtle.forward(x)
	turtle.left(360/7+1)
    pen.width(x*0.03) # 这个比例是我自己试的
    				  # 大家可以尝试其他比例找到自己最欢的

三、源代码

import turtle
turtle.bgcolor('black')
colors = ['red','orange','yellow','green','cyan','blue','purple']
turtle.speed(10)
for x in range(300):
    turtle.pencolor(colors[x%len(colors)])
    turtle.forward(x)
    turtle.left(360/len(colors)+1)
    turtle.width(x*0.03)
turtle.done()

今天的代码分析就到这里了,小伙伴们快去试一下吧!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
绘制花园是一个非常有趣的项目,可以用到很多Python图形库和算法。以下是一个简单的示例代码,可以绘制一个基于turtle库的花园: ```python import turtle import random # 定义花的颜 colors = ["red", "orange", "yellow", "green", "blue", "purple"] # 定义花的数量和半径 flower_count = 20 radius = 200 # 初始化画笔 turtle.speed(0) turtle.hideturtle() turtle.penup() turtle.goto(0, -radius) turtle.pendown() # 绘制花朵 for i in range(flower_count): # 随机选择花的颜 color = random.choice(colors) turtle.color(color) turtle.fillcolor(color) # 计算花的半径和位置 flower_radius = random.randint(10, 30) flower_angle = i * (360 / flower_count) flower_x = math.sin(math.radians(flower_angle)) * radius flower_y = math.cos(math.radians(flower_angle)) * radius - radius # 绘制花朵 turtle.penup() turtle.goto(flower_x, flower_y) turtle.pendown() turtle.begin_fill() for j in range(6): turtle.forward(flower_radius) turtle.right(60) turtle.end_fill() # 绘制草坪 turtle.penup() turtle.goto(-400, -250) turtle.pendown() turtle.color("green") turtle.fillcolor("green") turtle.begin_fill() turtle.forward(800) turtle.right(90) turtle.forward(500) turtle.right(90) turtle.forward(800) turtle.right(90) turtle.forward(500) turtle.end_fill() # 绘制树木 turtle.penup() turtle.goto(-300, -200) turtle.pendown() turtle.color("brown") turtle.pensize(30) turtle.right(90) turtle.forward(150) turtle.left(90) turtle.color("green") turtle.pensize(1) turtle.fillcolor("green") turtle.begin_fill() turtle.circle(100) turtle.end_fill() # 隐藏画笔 turtle.hideturtle() # 点击关闭窗口 turtle.exitonclick() ``` 上述代码中,我们首先定义了花的数量和半径,然后使用一个循环绘制每个花朵。在循环中,我们随机选择一种颜、计算花朵的半径和位置,然后使用turtle库绘制六边形的花朵。接着,我们使用turtle库绘制了一个草坪和一棵树,最后隐藏画笔,并等待用户点击关闭窗口。 你可以将上述代码复制到一个Python脚本中并执行,在窗口中即可看到绘制出来的花园图案。当然,你也可以根据自己的需要对代码进行修改和调整,绘制出更加个性化的花园图案

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值