P5.js开发之——颜色及变化(5)

一 概述

  • 用于设置颜色的color方法
  • 对color进行颜色三原色提取的red(红)、green(绿)、blue(蓝)及alpha(透明度)
  • 对color进行hue(色调)、brightness(亮度)、saturation(饱和度)及lightness(光度)提取
  • 对color进行lerpColor(混合)

二 color(设置颜色)

2.1 color的格式

语法示例说明
color(gray, [alpha])color(65)0-255之间的数值
color(v1, v2, v3, [alpha])color(255, 204, 0)红绿蓝(透明度)
color(value)color(‘magenta’)
color(’#0f0’)
color(‘rgb(0,0,255)’)
颜色字符串
color(values)color([255,0,0,100])颜色数组
color(color)let c=color(255,0,0);let c2=color©;给color赋值color

参数说明:

参数类型说明
gray数字一个定义白与黑之间的数值
alpha数字透明度值(默认为 0 至 255)
v1数字红彩值或色调值,需在被定义的范围内
v2数字绿彩值或饱和度值,需在被定义的范围内
v3数字蓝彩值或亮度值,需在被定义的范围内
value字符串颜色字符串
values数字数组一个有红、绿、蓝及透明度值的数组
colorp5.Color

2.2 示例

代码
function draw()
{
    let c = color([255,0,0,100]);//设置颜色
    fill(c);//填充颜色
    rect(15, 20, 35, 60);//绘制图形
  }
效果图

三 color三原色及透明度提取

3.1 说明

方法用法说明
redred(color)从颜色或像素数组中提取红色彩值
greengreen(color)从颜色或像素数组中提取绿色彩值
blueblue(color)从颜色或像素数组中提取蓝色彩值
alphaalpha(color)从颜色或像素数组中提取透明度值

3.2 示例(red为例)

代码
function draw()
{
  let c = color(255, 204, 0); // 定义颜色值c
  fill(c); // 填充颜色
  rect(15, 20, 35, 60); // 绘制左侧区域
  
  let redValue = red(c); // 获取c中红色
  fill(redValue, 0, 0); // 用获取的红色填充(红,绿,蓝)
  rect(50, 20, 35, 60); // 绘制右侧区域
}  
效果图

四 hue(色调)、brightness(亮度)、saturation(饱和度)及lightness(光度)

4.1 说明

方法用法说明
huehue(color)从颜色或像素数组中提取色调值
brightnessbrightness(color)从颜色或像素数组中提取 HSB 的亮度值
saturationsaturation(color)从颜色或像素数组中提取饱和度值
lightnesslightness(color)从颜色或像素数组中提取 HSL 的光度值

4.2 示例

代码
function draw()
{
  let c = color(156, 100, 50, 1);
  fill(c);
  rect(15, 20, 35, 60);
  let value = lightness(c); // Sets 'value' to 50
  fill(value);
  rect(50, 20, 35, 60);
  
}  
效果图

五 颜色混合(lerpColor)

5.1 用法说明lerpColor(c1, c2, amt)

参数示例说明
c1color(218, 165, 32)从这颜色开始插入
c2color(100)在这颜色结束插入
amt0.5两个值之间插入的量,介于 0 和 1 的数字

5.2 示例

代码
function draw()
{
  let from = color(218, 165, 32);//混合颜色开始
  let to = color(72, 61, 139); //混合颜色结束

  let interA = lerpColor(from, to, 0.33); //混合颜色A
  let interB = lerpColor(from, to, 0.66); //混合颜色B

  fill(from);
  rect(10, 20, 20, 60); //单独绘制颜色开始

  fill(interA);
  rect(30, 20, 20, 60); //单独绘制混合颜色A

  fill(interB);
  rect(50, 20, 20, 60); //单独绘制混合颜色B

  fill(to);
  rect(70, 20, 20, 60); //单独绘制颜色结束
 
} 
效果图

六 参考

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值