p5 中的 color 物件:
先認識兩個色彩學
可以了解
https://www.instagram.com/a__gilmore/?hl=en
https://www.instagram.com/mattmillsart/
可以透過色彩的交叉使用 可以了解一下到底怎麼去呈現
可以放在 fill()、background()、stroke() 等方法裡面,控制繪圖顏色的物件。
_getBlue()/_getGreen()/_getRed()/_getAlpha(),不論模式回傳 rgb(0-255),alpha(0-100)setBlue()/setGreen()/setRed()/setAlpha()

colorMode(RGB)
var clr )
color(255,0,0) 是純紅色,color(255,255,0)是黃色,color(255,255,255)是白色、color(0,0,0)是黑色,rgb 都相同的話就是灰階,以此類推function draw() {
	var clr = color(255 - frameCount,63,63) // 請不要用color會壞掉
	var clr = color('#3b52f9') // 使用色票
	var clr = color('FireBrinck');// 也可以使用這種名詞去找到相關顏色
	fill(clr);
	rect(mouseX,mouseY,50);
}
var clr
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(100);
	clr = color(255 - frameCount,63,63) // 請不要用color會壞掉
	clr.setAlpha(100);
}
function draw() {
	
	fill(clr);
	rect(mouseX,mouseY,50);
}
function mousePressed(){
	clr.setBlue(255);
}
由色相(Hue)、飽和度(Saturation)、亮度(Brightness/Value)三要素組成,相對於 RGB 會更容易直接控制想要的顏色與範圍。

透過飽和度 跟亮度 可以讓作品更有層次
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(0);
	colorMode(HSB);
	for(var i=0;i<width;i+=40){
		var h = map(i,0,width,0,360)
		for(var o=0;o<height;o+=40){
			var clr= color(h,50,100)
			// clr.setAlpha(0.8)
			fill(clr)
			ellipse(i, o, 20, 20);
		}
		
	}
}
透過這個方式我們可以更快速找到我們想要的色彩光譜
https://openprocessing.org/sketch/1257052
轉顏色對應
function draw() {
	blendMode(MULTIPLY)
	var clr1 = color('#6fdbd7');
	var clr2 = color("salmon");
	fill(clr1);
	rect(0,height/2,50,50);
	fill(clr2)
	rect(width-50,height/2,50)
	// ellipse(mouseX, mouseY, 20, 20);
	for(var i=0;i<width;i+=50){
		var ratio = map(i,0,width,0,1);
		var middleColor = lerpColor(clr1,clr2,ratio)
		fill(middleColor);
		rect(i,height/2,100,100)
	}
}
我們可以學會不同的顏色設定 blendMode 跟 lerpColor 可以做出重疊 跟 漸層效果
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(100);
		blendMode(BLEND)
	background(0);
	var clr1 = color('#6fdbd7');
	var clr2 = color("salmon");
	fill(clr1);
	rect(0,height/2,50,50);
	fill(clr2)
	rect(width-50,height/2,50)
	noStroke();
	// ellipse(mouseX, mouseY, 20, 20);
	for(var i=0;i<width*2;i+=100){
		clr1.setAlpha(20);
		fill(clr1);
		ellipse(0,height/2,i)
	}
	for(var i=0;i<width*2;i+=100){
		clr2.setAlpha(20);
		fill(clr2);
		ellipse(width,height/2,i)
	}
}
利用blendMode 可以做出一些不同的設定
var colors = ["#264653","#2a9d8f","#e9c46a","#f4a261","#e76f51"]
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(0);
}
function draw() {
	blendMode(SCREEN);
	var clr = random(colors);
	fill(clr);
	ellipse(mouseX, mouseY, random(0,100));
}
