initial commit

master
Leo Coogan 4 months ago
commit a5793c3f6f
Signed by: lcoogan
GPG Key ID: 54DBD17B0D75ABB0

@ -0,0 +1,89 @@
let x1 = 30;
let y1 = 0;
let x4 = 480;
let y4 = 0;
let x2, y2, x3, y3;
let baseColor;
let highlightColor;
let shadowColor;
function setup() {
createCanvas(windowWidth, windowHeight);
angleMode(RADIANS);
noStroke();
baseColor = color(160, 82, 45, 80); // Translucent base color
highlightColor = color(255, 200, 100, 80); // Translucent highlight
shadowColor = color(100, 50, 20, 80); // Translucent shadow
}
function leaf(leafX, leafY, leafRotation, scaleFactor) {
push();
translate(leafX, leafY);
rotate(leafRotation);
scale(scaleFactor, 1);
x2 = 100 * sin(frameCount * 0.05) + 1;
y2 = 100 * cos(frameCount * 0.005) + 10;
x3 = 180 * sin(frameCount * 0.005) + 10;
y3 = 150 * cos(frameCount * 0.005) + 10;
// Use a blend mode to multiply the layers
blendMode(MULTIPLY);
// Draw multiple translucent layers for a blended effect
let numLayers = 5;
for (let i = 0; i < numLayers; i++) {
// Lerp between colors
let lerpedColor = lerpColor(highlightColor, shadowColor, i / numLayers);
fill(lerpedColor);
// Calculate a slight offset for each layer
let offset = i * 2; // Adjust the multiplier for the desired effect
beginShape();
curveVertex(x1, y1);
curveVertex(x1, y1);
curveVertex(x2 + offset, y2 + offset);
curveVertex(x3 + offset, y3 + offset);
curveVertex(x4, y4);
curveVertex(x4, y4);
endShape();
beginShape();
curveVertex(x1, y1);
curveVertex(x1, y1);
curveVertex(x2 + offset, -y2 - offset);
curveVertex(x3 + offset, -y3 - offset);
curveVertex(x4, y4);
curveVertex(x4, y4);
endShape();
}
// Reset blend mode to default for other drawings
blendMode(BLEND);
pop();
}
function draw() {
bg();
leaf(200, 200, PI/2 * sin(frameCount * 0.005), 1);
leaf(500, 400, PI/4 * cos(frameCount * 0.005), -1);
leaf(100, 700, PI/2 * sin(frameCount * 0.005, 1));
}
function bg() {
c1 = color(10, 0, 255)
c2 = color(0, 100, 255, 0);
for (let y = 0; y < height; y++) {
n = map(y, 0, height, 0, 1);
let newc = lerpColor(c1, c2, n);
stroke(newc);
line(0, y, width, y);
}
noStroke(); // Disable stroke after drawing the background
}
Loading…
Cancel
Save