> show canvas only <


/* 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+"));")    ;
    }
}