Python绘制随机彩色蟒蛇方法浅析
今天老师提出了一个问题就是用turtle库绘制随机颜色的蟒蛇 并且每段的颜色都是不一样的 所以我写了这段代码 这段代码的思路是把不同颜色通过字典的方式存起来 通过随机数库就可以随机生成对应的key来调用这些颜色从而实现随机颜色的效果
import turtle import random#导入随机数模块实现随机颜色的功能 #把不同颜色用字典的方式储存 key为1到6的整数 colors = {1:'blue',2:'yellow',3:'red',4:'purple',5:'black',6:'green'} turtle.setup(650,350,200,200) turtle.pu() turtle.fd(-250) turtle.pendown() turtle.width(25) turtle.seth(-40) for i in range(4): a = random.randrange(1,7)#获取随机数并赋值给a turtle.pencolor(colors[a])#通过索引的方式选择颜色(颜色是随机的) turtle.circle(40,80) a = random.randrange(1,7)#获取随机数并赋值给a turtle.pencolor(colors[a])#通过索引的方式选择颜色(颜色是随机的) turtle.circle(-40,80) turtle.circle(40,80/2) turtle.fd(40) turtle.circle(16,180) turtle.fd(40*2/3) turtle.done()
这个是运行结果
不过这样子把一个一个颜色存进去太过麻烦 而且颜色太少了只局限于黑,绿 蓝,红,黄这几种颜色 没有达到随机颜色的目的 所以我加以改进 代码如下
import turtle import random # 导入随机数模块实现随机颜色的功能 turtle.colormode(255) # 把颜色表示法取值的模式从[0-1]之间改成[0-255] #定义一个生成颜色的模块 def colorchoose(): a, b, c = random.randrange(0, 256), random.randrange(0, 256), random.randrange(0, 256) color = (a, b, c) return color #返回值是一个rgb颜色 turtle.setup(650, 350, 200, 200) turtle.pu() turtle.fd(-250) turtle.pendown() turtle.width(25) turtle.seth(-40) for i in range(4): turtle.pencolor(colorchoose()) # 调用模块 随机生成rgb颜色 turtle.circle(40, 80) turtle.pencolor(colorchoose()) # 调用模块 随机生成rgb颜色 turtle.circle(-40, 80) turtle.circle(40, 80 / 2) turtle.fd(40) turtle.circle(16, 180) turtle.fd(40 * 2 / 3) turtle.done()
这段代码里的颜色变换直接取决于rgb颜色的三个参数 所以我让他们变为随机的 范围定在0-255(注:python里的rgb颜色参数模式默认是0-1 用turtle的话需要用turtle.colormode(255) 语句把模式转换成0-255否则会报错) 定义了一个模块的原因是因为不停通过赋值的方式改变rgb的三个参数是在太麻烦 所以通过调用具有生成随机颜色功能的模块的方式更加省力 以下是运行结果
看,随机颜色的功能是不是实现了?
到此这篇关于Python绘制随机彩色蟒蛇方法浅析的文章就介绍到这了,更多相关Python绘制彩色蟒蛇内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)