用python实现绘制随机彩色蟒蛇的效果

您所在的位置:网站首页 如何用python绘制蟒蛇 用python实现绘制随机彩色蟒蛇的效果

用python实现绘制随机彩色蟒蛇的效果

2024-06-20 17:16| 来源: 网络整理| 查看: 265

 今天老师提出了一个问题就是用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的三个参数是在太麻烦 所以通过调用具有生成随机颜色功能的模块的方式更加省力 以下是运行结果

 看,随机颜色的功能是不是实现了?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3