xxxxxxxxxx
const jump=0.02;
const col = [
'#33f2c5',
'#e5f233',
'#e6a22e',
'#db2537',
'#7626d1',
/*'#4287f5',
'#eb36c3',
'#e8b22a',
'#35f0b4',
'#35cef0',*/
];
let t=0;
function setup() {
createCanvas(windowWidth,windowHeight);
width=min(windowWidth,windowHeight);
height=min(windowWidth,windowHeight)
}
function draw() {
background(255);
translate(windowWidth/2-width/4,height/2);
push();
translate(250,0);
textFont('Helvetica');
stroke('#7626d1');
strokeWeight(6);
noFill();
textAlign(CENTER, TOP);
textSize(200);
text('ALOHA', 0, 0);
pop();
rotate(HALF_PI);
let d=300;
const r=PI+QUARTER_PI;
for (let j=0; j<5; j++) {
fill(col[j]);
beginShape(LINES); // eheh >:)
beginShape(TRIANGLE_STRIP);
let dd=d+j*70;
let i=0;
let prevx=0;
let prevy=0;
for (let a=0; a<r; a+=jump) {
let x,y;
if(i%2==0) {
x=cos(a)*d;
y=sin(a)*d;
}else{
const n = noise(a/2,j/2,t)*-800;
x=lerp(lerp(cos(0)*d,0,a/r),lerp(0,cos(r)*d,a/r),a/r)
// Who said only shaders have shenanigans
y=max(lerp(lerp(0,dd,a/r),lerp(dd+n*max(0,(a/r-0.4)),n*max(0,(a/r-0.4)),a/r),a/r), sin(r)*d);
}
stroke(255);
strokeWeight(20);
if (i>3) line(x,y,prevx,prevy);
noStroke();
if(i%2==1) {
prevx=x;
prevy=y;
}
vertex(x,y);
i++;
}
endShape();
endShape();
}
t+=0.01;
}
/*
hey
ily
-Shy
*/