/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.ZZ-nvAw6Uzk/rev.59
*
* authors:
* kirk kirkjerk israel
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
// http://studio.sketchpad.cc/sp/pad/view/ro.98$T361TiLjxE/rev.1052
ArrayList segs = new ArrayList();
boolean drawing = false;
void setup(){
size(500,500);
segs.add(new Seg(21,99,25,16));
segs.add(new Seg(24,17,67,45));
segs.add(new Seg(67,45,26,61));
segs.add(new Seg(25,62,70,90));
segs.add(new Seg(70,90,22,98));
segs.add(new Seg(75,95,85,26));
segs.add(new Seg(84,28,112,28));
segs.add(new Seg(112,28,112,92));
segs.add(new Seg(112,92,74,95));
segs.add(new Seg(165,29,132,18));
segs.add(new Seg(132,18,131,51));
segs.add(new Seg(131,51,163,46));
segs.add(new Seg(163,46,162,87));
segs.add(new Seg(160,87,132,89));
segs.add(new Seg(173,23,219,17));
segs.add(new Seg(198,21,192,80));
segs.add(new Seg(220,87,236,18));
segs.add(new Seg(236,18,262,19));
segs.add(new Seg(262,20,257,82));
segs.add(new Seg(257,82,221,84));
segs.add(new Seg(271,87,280,19));
segs.add(new Seg(280,19,294,70));
segs.add(new Seg(294,73,309,18));
segs.add(new Seg(361,29,304,87));
segs.add(new Seg(64,145,67,201));
segs.add(new Seg(102,146,69,171));
segs.add(new Seg(68,172,105,200));
segs.add(new Seg(116,210,132,151));
segs.add(new Seg(132,151,153,211));
segs.add(new Seg(121,191,142,180));
segs.add(new Seg(155,215,162,152));
segs.add(new Seg(162,152,180,197));
segs.add(new Seg(180,198,192,158));
segs.add(new Seg(192,158,212,209));
segs.add(new Seg(224,211,226,154));
segs.add(new Seg(226,154,267,170));
segs.add(new Seg(267,170,226,186));
segs.add(new Seg(226,187,267,193));
segs.add(new Seg(266,195,222,206));
segs.add(new Seg(281,204,283,150));
segs.add(new Seg(283,152,312,175));
segs.add(new Seg(313,175,287,180));
segs.add(new Seg(286,180,315,205));
segs.add(new Seg(323,152,331,201));
segs.add(new Seg(352,207,353,151));
segs.add(new Seg(352,151,385,174));
segs.add(new Seg(386,176,355,204));
segs.add(new Seg(388,196,392,144));
segs.add(new Seg(392,144,411,151));
segs.add(new Seg(386,195,406,192));
segs.add(new Seg(406,192,409,171));
segs.add(new Seg(409,171,402,169));
segs.add(new Seg(413,194,423,139));
segs.add(new Seg(423,139,445,145));
segs.add(new Seg(418,170,441,172));
segs.add(new Seg(416,189,436,192));
segs.add(new Seg(57,247,26,235));
segs.add(new Seg(24,235,26,301));
segs.add(new Seg(26,301,57,277));
segs.add(new Seg(39,270,68,276));
segs.add(new Seg(73,299,80,249));
segs.add(new Seg(80,249,109,269));
segs.add(new Seg(109,269,73,298));
segs.add(new Seg(117,295,122,248));
segs.add(new Seg(122,248,154,249));
segs.add(new Seg(118,291,148,292));
segs.add(new Seg(214,240,214,311));
segs.add(new Seg(266,240,210,271));
segs.add(new Seg(210,271,257,309));
segs.add(new Seg(266,311,288,240));
segs.add(new Seg(286,240,296,305));
segs.add(new Seg(274,284,296,274));
segs.add(new Seg(305,243,301,298));
segs.add(new Seg(298,245,330,257));
segs.add(new Seg(336,258,305,275));
segs.add(new Seg(302,275,334,298));
segs.add(new Seg(320,238,368,235));
segs.add(new Seg(344,238,343,300));
segs.add(new Seg(404,231,402,290));
segs.add(new Seg(367,259,400,287));
segs.add(new Seg(383,223,420,234));
segs.add(new Seg(403,293,424,236));
segs.add(new Seg(424,236,439,287));
segs.add(new Seg(411,274,432,266));
segs.add(new Seg(442,296,445,228));
segs.add(new Seg(445,226,462,261));
segs.add(new Seg(463,261,470,223));
segs.add(new Seg(469,222,479,309));
segs.add(new Seg(52,341,106,314));
segs.add(new Seg(106,314,136,343));
segs.add(new Seg(136,343,76,411));
segs.add(new Seg(76,411,140,415));
segs.add(new Seg(168,421,188,319));
segs.add(new Seg(188,319,235,319));
segs.add(new Seg(235,319,243,411));
segs.add(new Seg(167,419,244,409));
segs.add(new Seg(278,329,306,314));
segs.add(new Seg(307,312,302,403));
segs.add(new Seg(282,409,320,399));
segs.add(new Seg(345,342,371,308));
segs.add(new Seg(371,308,433,325));
segs.add(new Seg(433,325,354,385));
segs.add(new Seg(354,385,437,393));
}
void keyPressed(){
if(key == 'p'){
for(Seg s : segs){
s.print();
}
}
if(key == ' '){
segs = new ArrayList();
}
}
float mx = 250;
float my = 250;
float mxs, mys;
float a;
void draw(){
background(255);
noStroke();
if(mx < mouseX) mxs += .5;
else mxs -= .5;
if(my < mouseY) mys += .5;
else mys -= .5;
mxs *= .99;
mys *= .99;
/*
mxs += random(-1,1);
mys += random(-1,1);
*/
mx += mxs;
my += mys;
if(mx < 0){
mxs = abs(mxs)/2;
}
if(mx > 500){
mxs = abs(mxs)/-2;
}
if(my < 0){
mys = abs(mys)/2;
}
if(my > 500){
mys = abs(mys)/-2;
}
/*
if(mx > 500){ mxs = -,5 * abs (mxs);}
if(my < 0) {mys = ,5 * abs (mys);}
if(my > 500){ mys = -,5 * abs (mys);}
*/
/*
mx = 250 + cos(a)*20;
my = 250 + sin(a)*20;
a += .1;*/
for(Seg s : segs){
fill(s.c);
triangle(mx,my,s.sx,s.sy,s.ex,s.ey);
}
strokeWeight(4);
stroke(50,75);
for(Seg s : segs){
line(s.sx,s.sy,s.ex,s.ey);
}
if(drawing){
stroke(200,0,0,180);
line(startX,startY,mouseX,mouseY);
}
}
void mousePressed(){
startX = mouseX;
startY = mouseY;
drawing = true;
}
void mouseReleased(){
segs.add(new Seg());
drawing = false;
}
class Seg{
float sx,sy, ex,ey;
color c;
Seg(){
sx = startX; sy = startY;
ex = mouseX; ey = mouseY;
c = color(random(100,255),random(100,255),random(100,255),150);
}
Seg(float a,float b,float cee,float d){
sx = a; sy = b;
ex = cee; ey = d;
c = color(random(100,255),random(100,255),random(100,255),150);
}
void print(){
println(" segs.add(new Seg("+sx+","+sy+","+ex+","+ey+"));") ;
}
}