借助random库绘制随机彩色多边形螺旋线

六色六边形

先用turtle库绘制六色的六边形

import turtle as t
t.setup(width=0.75, height=0.75, startx=None, starty=None)
color=['black','red','yellow','blue','green','purple']
t.speed(10)
t.pensize(7)
t.pendown()
a=0
for i in range(350):
    a=i
    while a>6:
        a-=6
    t.pencolor(color[a-1])
    t.forward(i)
    t.right(60)
t.delay(600)

 运行结果如下:

如果觉得颜色过少,我们可以通过增加列表color的颜色来丰富六边形的色彩。

但是,每增加一种颜色,我们就要手动输入一种颜色,这样太麻烦了。

那么,有没有办法能随机选择颜色呢?

我们可以借助random库产生随机颜色

随机彩色六边形

randint(a,b)函数可产生从a到b之间的随机整数

如下,a为0到100间的随机整数

import random as r
a=r.randint(0,100)

在RGB整数色值中,颜色由红色、绿色、蓝色混合而成。将颜色由一个十六进制符号来定义。每种颜色的最小值是 0,最大值是 255。

也就是说,我们可以用从0到255之间的三个随机整数来产生随机颜色。

如下,a,b,c即为0到255之间的随机整数

import random as r
a=random.randint(0,255)
b=random.randint(0,255)
c=random.randint(0,255)

再在原六边形代码的基础上稍加修改

如下为随机彩色多边形

import turtle as t
import random as r
t.setup(width=0.75, height=0.75, startx=None, starty=None)
a=0
b=0
c=0
t.speed(10)
t.pensize(6)
t.pendown()
t.colormode(255)
for i in range(350):
    a=r.randint(0,255)
    b=r.randint(0,255)
    c=r.randint(0,255)
    t.forward(i)
    t.pencolor(a,b,c)
    t.right(60)
t.delay(600)

下图为运行结果

同理,如果修改画笔每次旋转的角度,可绘制出随机彩色n边形

随机彩色三角形

import turtle as t
import random as r
t.setup(width=0.75, height=0.75, startx=None, starty=None)
a=0
b=0
c=0
t.penup()s
t.speed(10)
t.pensize(3)
t.sety(50)
t.pendown()
t.colormode(255)
for i in range(200):
    a=r.randint(0,255)
    b=r.randint(0,255)
    c=r.randint(0,255)
    t.forward(3*i)
    t.pencolor(a,b,c)
    t.right(120)
t.delay(600)

随机彩色n边形 

import turtle as t
import random as r
t.setup(width=0.75, height=0.75, startx=None, starty=None)
a=0
b=0
c=0

d=int(input('画笔粗细为?'))
e=int(input('绘制几边形?'))
t.speed(10)
t.pensize(d)
t.pendown()
t.colormode(255)
for i in range(350):
    a=r.randint(0,255)
    b=r.randint(0,255)
    c=r.randint(0,255)
    t.forward(i)
    t.pencolor(a,b,c)
    t.right(360/e)
t.delay(600)

(画笔粗细及边数可自由选择)

  • 18
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值