xxxxxxxxxx
98
var gui;
let b;
var ferruleLength = 20;
var ferruleLengthMin = 10;
var ferruleLengthMax = 200;
var ferruleThickness = 15;
var ferruleThicknessMin = 10;
var ferruleThicknessMax = 30;
var handleLength = 150;
var handleLengthMin = 10;
var handleLengthMax = 300;
var handleThickness = 20;
var handleThicknessMin = 10;
var handleThicknessMax = 30;
var bristlesLength = 60;
var bristlesLengthMin = 10;
var bristlesLengthMax = 100;
var bristlesBreadth = 30;
var bristlesBreadthMin = 10;
var bristlesBreadthMax = 100;
var belly = 50;
var bellyMin = 5;
var bellyMax = 100;
var angle = 320;
var angleMin = 0;
var angleMax = 360;
var caption = "#PCD2021";
function preload() {
// bg = loadImage();
}
function setup() {
createCanvas(800, 600);
b = new Brush();
// Create Layout GUI
gui = createGui("Paint Brush #PCD2021");
gui.addGlobals('ferruleLength', 'ferruleThickness', 'handleLength', 'handleThickness', 'angle', 'caption', 'bristlesLength',
'bristlesBreadth', 'belly');
noLoop();
}
function draw() {
background(220);
strokeWeight(1);
/*
for (let i=0;i<width-40;i++) {
colorMode(HSB,100,100,100);
stroke(i*100/(width-40),100,100);
line(i,height,i,height-20);
}
*/
b.move(width / 2, height / 2);
b.display();
}
class Brush {
constructor() {
this.x = 0;
this.y = 0;
}
move(x, y) {
this.x = x;
this.y = y;
}
display() {
colorMode(RGB);
push();
translate(this.x, this.y);
rotate(2 * PI * angle / 360);
strokeWeight(1);
noFill();
randomSeed(99);
for (let i = -10; i < 10; i++) {
stroke(random(64, 220));
bezier(0, 0, -bristlesLength * belly / 100, -bristlesBreadth * i / 10, -bristlesLength * belly / 100, 0, -bristlesLength, 0);
}
stroke(0);
strokeWeight(ferruleThickness + 1);
line(0, 0, ferruleLength, 0);
stroke(240);
strokeWeight(ferruleThickness);
line(0, 0, ferruleLength, 0);
stroke(64);
strokeWeight(handleThickness);
line(ferruleLength, 0, ferruleLength + handleLength, 0);
fill(255);
noStroke();
textSize(handleThickness * 0.6);
textAlign(LEFT, CENTER);
text(caption, ferruleLength, 0);
pop();
}
}