Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // this is for P5JS
- // I should note that it creates a perfect animated color loop...
- // clr1 array example
- // gray blends to light gray / 0 -> 1
- // light gray blends to red / 1 -> 2
- // red blends to purple / 2 -> 3
- // purple blends to red / 3 -> 4
- // red blends BACK to gray / 4 -> 0
- let stageW = 1080;
- let stageH = 1080;
- let clrLen;
- let whichClr;
- let clr1=[ [102,102,102], [153,153,153], [236,31,39], [102,47,144], [236,31,39] ];
- let clr2=[ [51,51,51], [255,51,0], [255,255,255] ];
- let clr3=[ [255,0,0], [255,255,255], [0,255,0], [0,0,255] ];
- let clr1Num = 300;
- let clr1Cnt = -1;
- let clr1Blk;
- let clr2Num = 900;
- let clr2Cnt = -1;
- let clr2Blk;
- let clrA = []; // store 300 color gradients
- let clrB = []; // store 900 color gradients
- function setup() {
- createCanvas(stageW, stageH, WEBGL);
- background('#111111');
- let _r = int( random(3) );
- if(_r==0) {
- whichClr = clr1;
- }
- else if(_r==1) {
- whichClr = clr2;
- }
- else {
- whichClr = clr3;
- }
- setColorTables();
- }
- function draw() {
- background('#111111');
- strokeWeight(0);
- noStroke();
- // 300 COLORS
- push();
- translate( -((stageW/2)-20), -((stageH/2)-20) );
- for (let i = 0; i < clr1Num; ++i) {
- fill( clrA[i] );
- rect(5+(i*1), 0, 1, 100);
- }
- pop();
- push();
- translate( -((stageW/2)-20), -((stageH/2)-130) );
- for (let i = 0; i < clr1Num; ++i) {
- fill( clrA[ (i+(frameCount*5))%clrA.length ] );
- rect(5+(i*1), 0, 1, 100);
- }
- pop();
- // 900 COLORS
- push();
- translate( -((stageW/2)-20), -((stageH/2)-320) );
- for (let i = 0; i < clr2Num; ++i) {
- fill( clrB[i] );
- rect(5+(i*1), 0, 1, 100);
- }
- pop();
- push();
- translate( -((stageW/2)-20), -((stageH/2)-430) );
- for (let i = 0; i < clr2Num; ++i) {
- fill( clrB[ (i+(frameCount*2))%clrB.length ] );
- rect(5+(i*1), 0, 1, 100);
- }
- pop();
- }
- function setColorTables() {
- clrLen = whichClr.length;
- clr1Blk = floor(clr1Num/clrLen);
- clr2Blk = floor(clr2Num/clrLen);
- for (let i = 0; i < clr1Num; ++i) {
- if( i%clr1Blk==0 ) clr1Cnt = (clr1Cnt+1)%clrLen;
- let _c1 = color( whichClr[(clr1Cnt)][0], whichClr[(clr1Cnt)][1], whichClr[(clr1Cnt)][2] );
- let _c2 = color(whichClr[(clr1Cnt+1)%clrLen][0], whichClr[(clr1Cnt+1)%clrLen][1], whichClr[(clr1Cnt+1)%clrLen][2]);
- clrA.push( lerpColor( _c1, _c2, map(i, (clr1Cnt*clr1Blk), (((clr1Cnt+1))*clr1Blk), 0.0, 1.0) ) );
- }
- for (let i = 0; i < clr2Num; ++i) {
- if( i%clr2Blk==0 ) clr2Cnt = (clr2Cnt+1)%clrLen;
- let _c1 = color(whichClr[(clr2Cnt)][0], whichClr[(clr2Cnt)][1], whichClr[(clr2Cnt)][2]);
- let _c2 = color(whichClr[(clr2Cnt+1)%clrLen][0], whichClr[(clr2Cnt+1)%clrLen][1], whichClr[(clr2Cnt+1)%clrLen][2]);
- clrB.push( lerpColor( _c1, _c2, map(i, (clr2Cnt*clr2Blk), (((clr2Cnt+1))*clr2Blk), 0.0, 1.0) ) );
- }
- }
Add Comment
Please, Sign In to add comment