如何用Python的pencolor函数玩渐变色


前言

在学习turtle库绘图时,改变线条颜色往往可以获得惊艳的效果。对于pencolor函数的使用,简单的字符串调用颜色十分简单,但其乐趣远不止一个"red"、一个"blue"这样,利用RGB参数进行选色,还可以玩出渐变的花样


提示:以下是本篇文章正文内容,下面案例可供参考

一、RGB简介

RGB,工业界的一种颜色标准,说白了就是我们现在所能见到的几乎所有颜色都是红绿蓝三种颜色按照不同比例混合而成的。

二、RGB在pencolor中的应用

1.RGB模式

pencolor(R, G, B)的RGB模式有两种,1.0和255,1.0表示输入的RGB三值范围为[0,1]的小数,255表示输入的RGB三值范围为[0,255]的整数。
:输入的RGB值须在该RGB模式的范围之内!
RGB三值部分对应颜色如下图所示(摘于网上,侵权删):

在这里插入图片描述

2.RGB模式切换

RGB模式可以通过colormode()函数进行切换,输入colormode(1.0)表示1.0模式,输入colormode(255)表示255模式。

3.玩转渐变色

黄色渐变色效果图:
在这里插入图片描述

代码:

import turtle as t
from random import *

def gradient():
    x = randint(-200, 200)
    y = randint(0, 200)
    r = 1
    g = 1
    b = y / 200
    t.pencolor(r, g, b)
    
    i = randint(3,20)
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.fd(i)
    
def main():
    t.setup(400, 400, 800, 300)
    t.bgcolor('black')
    t.tracer(0)
    t.pensize(5)
    for i in range(100):
        gradient()
    t.hideturtle()
    t.update()
    
main()

注: 黄色对应的RGB整数值为(255,255,0),对应的RGB小数值为(1,1,0),所以我们只要确定RG的值不变,改变B的值即可绘出黄色的渐变色!
那为什么表示轴坐标的y是随机变的,还会出现层次分明的渐变色的效果呢?
:重点就是这个y了,因为b值调用的就是y值,而y值确定表示在y轴的位置确定的,b值确定表示颜色确定,所以才会出现层次分明的渐变色!

灰色渐变色效果图:

在这里插入图片描述

代码:

def gradient():
    x = randint(-200, 200)
    y = randint(0, 200)
    r = y / 200
    g = y / 200
    b = y / 200
    t.pencolor(r, g, b)
    
    i = randint(3,20)
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.fd(i)

注: 灰色对应的情况为RGB三值相等,由黑色对应的RGB值为(0,0,0),白色对应的RGB值为(255,255,255),可知,我们只要确保RGB三值相等且其值在规定区间内变化,就能绘出灰色的渐变色!


总结

利用pencolor绘制渐变色有两步:一是熟悉pencolor函数的RGB模式怎么使用;二是了解所要绘制颜色对应的RGB值,通过改变RGB值来调渐变色。

祝学有所得!

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绍兴酒瓶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值