使用Python的pencolor函数实现渐变色功能

 更新时间:2021年03月08日 14:17:15   作者:绍兴酒瓶  
这篇文章主要介绍了使用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值来调渐变色。

到此这篇关于使用Python的pencolor函数实现渐变色功能的文章就介绍到这了,更多相关Python pencolor渐变色内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Requests 基本使用及Requests与 urllib 区别

    Python Requests 基本使用及Requests与 urllib 区别

    在使用Python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装,今天通过本文给大家讲解Python Requests使用及urllib区别,感兴趣的朋友一起看看吧
    2022-11-11
  • Python应用开发频繁假死的问题分析及解决

    Python应用开发频繁假死的问题分析及解决

    最近在开发一款自动化的应用,但是,在测试时,却发现了问题,当我点击暂停任务后,此时子线程被阻塞,如果我这个时候点击停止,那么就会任务结束,之后,如果我再点击开始运行,整个应用就会卡死,所以本文介绍了Python应用开发频繁假死的问题分析及解决,需要的朋友可以参考下
    2024-08-08
  • Python著名游戏实战之方块连接 我的世界

    Python著名游戏实战之方块连接 我的世界

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,本篇文章手把手带你模仿著名游戏——我的世界,大家可以在过程中查缺补漏,看看自己掌握程度怎么样
    2021-10-10
  • python小巧而强大的网络爬虫工具Grab轻松抓取站点信息

    python小巧而强大的网络爬虫工具Grab轻松抓取站点信息

    Grab 是一个强大的 python 网络爬虫框架,由 Greg Lavr 开发,它能够让你轻松地从互联网上抓取所需的信息,Grab 基于 pycurl[1],是性能十分优越的一个 HTTP 客户端,由于采用了异步网络 I/O 模型,Grab 甚至可以并行处理数千个网络连接
    2024-01-01
  • 详解python数据结构之队列Queue

    详解python数据结构之队列Queue

    这篇文章主要介绍了python数据结构之队列Queue,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • 利用Python实现眨眼计数器的示例代码

    利用Python实现眨眼计数器的示例代码

    这篇文章主要介绍了如何使用Python语言实现对视频中的人物的眨眼进行计数并描绘在图表中,文中的实现步骤讲解详细,感兴趣的可以动手试一试
    2022-02-02
  • python中的post请求解读

    python中的post请求解读

    文章介绍了Python中POST请求的4种编码方式:application/x-www-form-urlencoded、multipart/form-data、application/json和text/xml,通过代码示例和工具使用,展示了如何发送和处理这些请求
    2024-11-11
  • Python就将所有的英文单词首字母变成大写

    Python就将所有的英文单词首字母变成大写

    这篇文章主要给大家介绍了关于Python就将所有的英文单词首字母变成大写的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • python random库的简单使用demo

    python random库的简单使用demo

    这篇文章主要为大家介绍了python random库的简单使用demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 利用Python实现从PDF到CSV的转换

    利用Python实现从PDF到CSV的转换

    将PDF转换为CSV极大地提升了数据的实用价值,Python作为一种强大的编程语言,能够高效完成这一转换任务,本文将介绍如何利用Python实现从PDF到CSV的转换,需要的朋友可以参考下
    2024-07-07

最新评论