var count = 200;
var x = 0;
var posX = [];
var posX2 = [];
var posY = [];
var posY2 = [];
var speedX = [];
var speedX2 = [];
var speedY = [];
var speedY2 = [];
var sizeW = [];
var sizeH = [];
var colors = [];
let xoff = 0.0;
function setup() {
createCanvas(900,900);
// frameRate(30);
// background(255);
noStroke();
for (var i=0; i < count; i++) {
posX[i] = width/2;
posY[i] = height/2;
posX2[i] = width/4;
posY2[i] = height/4;
speedX[i] = random(-5, 5);
speedY[i] = random(-5, 5);
speedX2[i] = random(-15, 15);
speedY2[i] = random(-15, 15);
sizeW[i] = random(20, 25);
sizeH[i] = random(20, 100);
colors[i] = (random(0, 255));
}
noiseSeed(99);
stroke(0, 500);
}
function draw() {
fill(100,50);
rect(0, 0, width, height);
console.log("hi");
for (var i = 0; i < count; i++) {
// //update all positions
posX[i] += speedX[i];
posY[i] += speedY[i];
posX2[i] += speedX2[i];
posY2[i] += speedY2[i];
// //draw all balls
fill(colors[i], random(colors[i]), random(255));
// fill(150, 200, 75);
rect(posX[i], posY[i], sizeW[i], sizeW[i]);
// rect(10, 10, 20, 20);
ellipse(posX2[i], posY2[i], sizeW[i], sizeW[i]);
// tint(0, 153, 204, 126);
//check boundaries for all balls
if (posX[i] < 40+sizeW[i]/2 || posX[i] > (width-40)-sizeW[i]/2 ) {
speedX[i] = -speedX[i];
}
if (posY[i] < 40+sizeW[i]/2 || posY[i] > (height-40)-sizeW[i]/2) {
speedY[i] = -speedY[i];
}
if (posX2[i] < 40+sizeW[i]/2 || posX2[i] > (width-40)-sizeW[i]/2 ) {
speedX2[i] = -speedX2[i];
}
if (posY2[i] < 40+sizeW[i]/2 || posY2[i] > (height-40)-sizeW[i]/2) {
speedY2[i] = -speedY2[i];
}
}
strokeCap(ROUND);
xoff = xoff + .01;
let n = noise(xoff) * width;
line(n, 0, n, height);
}
For this sketch, I converted a processing sketch to a p5 sketch. I also added noiseSeed and strokeCap round.
var value = 0;
var tCounter = 0;
var b;
var f;
// PFont f;
var x = 0;
function setup() {
createCanvas(800, 800);
noStroke();
rectMode(CENTER);
b = loadImage("img/2corgi.jpg");
f = loadFont("asset/GOTHIC.ttf");
}
function draw() {
background(255-value);
fill(value,0 ,0);
ellipse(width/2, height/2, 400, 400);
image(b, 0, 0, width, height);
fill(value, 0, 0);
rect(200, 400, 50, tCounter);
fill(value, 0, 0);
rect(600, 400, 50, tCounter);
for ( var value = 0; value < width; value += 32 ) {
fill(mouseX, mouseY, 100, 100);
rect(value, height/4, 20, height);
// tvar(255, 50);
image(b, mouseX, mouseY);
}
blendMode(OVERLAY);
filter(GRAY);
value++;
if ( value > 255) {
value = 0;
}
fill(value, 204, 0);
rect(mouseX, height/2, mouseY/2+10, mouseY/2+5);
fill(value, 204, 0);
//prvarArray(PFont.list());
textFont(f);
if ( mouseIsPressed && keyPressed == true )
fill(0, random(255), random(255));
text("Send Help", 120, tCounter);
tCounter ++;
if (tCounter > width) {
tCounter = -10;
}
fill(50, 30, 0);
rect(0, 0, width, height);
textAlign(CENTER);
myDrawType("Hello", mouseX, 200);
circle(width*1, height*0.5, 200, 10);
circle(width*0, height*0.5, 200, 10);
circle(width*0.5, height*1, 200, 10);
circle(width*0.5, height*0, 200, 10);
//if (x < 900) {
// line(x, 0, x, 1);
// x = x + 1;
//} else {
// noLoop();
// exit();
//}
//saveFrame("line-#####.png");
}
function circle( lox, loy, createCanvas, x) {
var a = createCanvas/x;
for (var i = 0; i < x; i++) {
fill(random(255),random(255),random(255));
ellipse(lox, loy, createCanvas - i*a, createCanvas - i*a);
}
}
function keyPressed() {
if ( key == 'b' || key == 'B' ) {
// example of toggle logic
stroke(1);
strokeWeight(3);
line(mouseX, mouseY, pmouseX, pmouseY);
} else {
stroke(6);
strokeWeight(10);
}
}
function mouseMoved() {
value = value + 1;
if (value > 255) {
value = 0;
}
}
function ssDrawText(s, lx, ly, c ) {
fill(c);
text(s, lx, ly,20);
}
function myDrawType( s, x, y ) {
fill(255, 0, 0);
text(s, x, y);
fill(200, 0, 0);
rect(x, y, 5, 5);
}
For this sketch, I converted a processing sketch to a p5 sketch. I added the blendMode Overlay to my image and I added the filter gray.
let t = 0;
function setup() {
createCanvas(1000, 1000);
angleMode(DEGREES);
}
function draw() {
fill(0, 0, 10,3);
ellipse(500,500,990,990)
translate(width/2, height/2);
rotate(-180);
let hr = hour();
let mn = minute();
let sc = second();
strokeWeight(8);
stroke(233,117, 255,10);
let secondAngle = map(sc, 0, 60, 0, 360);
stroke(130, 140, 255,10);
let minuteAngle = map(mn, 0, 60, 0, 360);
stroke(117, 255, 255, 10);
let hourAngle = map(hr % 12, 0, 12, 0, 360);
push();
rotate(secondAngle);
stroke(233,117, 255,10);
triangle(secondAngle, 250, secondAngle, 25);
pop();
push();
rotate(minuteAngle);
stroke(130, 140, 255);
triangle(minuteAngle, 350, minuteAngle, 50);
pop();
push();
rotate(hourAngle);
stroke(117, 255, 255);
triangle(hourAngle, 450, hourAngle, 100);
pop();
if (mouseIsPressed) {
rotate(180);
fill(255);
noStroke();
textSize(36);
text(hr + ':' + mn + ':' + sc, 0, 150);
isAMPM();
}
}
function isAMPM (hr) {
let tod;
if (hr < 12) { //its AM
tod = "AM";
fill(230,255,90);
ellipse(0,0, 50,50);
} else { //otherwise PM
tod = "PM";
fill(255);
ellipse(0,0,50,50);
fill(0,0,10);
ellipse(10,-10,30,30);
}
return tod;
}
For project 3, I made a clock using time functions for hour, minute, and second. I created a spiral that goes around the center of the canvas to tell the time. When the mouse is pressed, the clock shows the time and if it is am or pm.