let sq_distance = sq_size * 1;
let timer_frame_stroke = 0;
constructor(x, y, color_cond) {
this.color_cond = color_cond;
this.div = random( -sq_size*0.5, sq_size*0.5 );
this.theta = random(PI*2);
this.draw_bottom_right();
let c = color(this.r*this.color_cond[0],
this.r*this.color_cond[1],
this.r*this.color_cond[2],
translate(width - this.x, this.y);
square(-sq_size/2, -sq_size/2, sq_size);
let c = color(this.r*this.color_cond[0],
this.r*this.color_cond[1],
this.r*this.color_cond[2],
circle(this.x, height - this.y, sq_size + this.div );
circle(width - this.x, height - this.y, sq_size + this.div );
this.points.push( new PointShape(x, y, this.color_cond) );
this.color_cond = [1, 0, 0];
this.color_cond = [0, 1, 0];
this.color_cond = [0, 0, 1];
this.color_cond = [1, 1, 0];
this.color_cond = [1, 0, 1];
this.color_cond = [0, 1, 1];
for (let i=0; i<this.points.length; i++) {
this.points[i].point_start_alpha();
if (this.points.length>1 && count>1) {
line(this.points[count].x, this.points[count].y,
this.points[count-1].x, this.points[count-1].y);
for (let i=0; i<this.points.length; i++) {
this.points[i].draw_point();
createCanvas(windowWidth, windowHeight);
timer_frame_stroke = ceil( 60 * 0.1 );
seed2 = minute()*second();
describe('This artwork presents a mesmerizing depiction of four individuals expressing their creativity through diverse art styles, all unified on a single canvas.\n In the top-left quadrant, a figure sketches with delicate precision, employing simple pencil strokes to capture the essence of their subject.\n Contrasting sharply, the top-right quadrant bursts forth with vibrant colors and geometric forms characteristic of Cubism, with the original subject horizontally flipped from the top-left quadrant.\n In the bottom-left quadrant, the canvas transforms into a symphony of swirling colors and blurred contours, reminiscent of the Impressionist movement, featuring the original subject flipped vertically.\n Lastly, the bottom-right quadrant offers a stark departure, embracing the simplicity of monochromatic ink strokes, with the original subject flipped both horizontally and vertically.\n Together, these four styles converge to create a dynamic tapestry of artistic expression, with each quadrant contributing its own unique voice to the collective narrative.');
function reset_canvas() {
rect(dis,0, width, dis_h);
rect(dis,dis_h, width, height);
rect(0,dis_h, dis, height);
noise( 0.01 * frameCount + seed1 );
noise( 0.01 * frameCount + seed2 );
distance += sqrt( pow( pos_x-p_pos_x, 2) +
pow( pos_y-p_pos_y, 2) );
if (distance > sq_distance) {
lines[lines.length-1].create_point(pos_x, pos_y);
for (let i=0; i<lines.length; i++) {
lines[i].update_canvas();
if (timer_frame_stroke <= 0) {
timer_frame_stroke = ceil( 60 * 0.3 );
if (timer_frame_stroke <= 0) {
lines.push( new LineShape() );
timer_frame_stroke = ceil( 60 * random(0.5, 5) );