class Orchid { int count, index; float x,y,rnd,angle,x1,y1,v,speed; float timer,end,divid; int maxSize; float originX; float originY; boolean endornot; Orchid(float _x, float _y) { x = _x; y = _y; originX = _x; originY = _y; init(); } void init() { angle = (random(1)*(2*PI))-PI; x1 = x; y1 = y; v = 0; speed = 1.5*3.5; // 4 is scale factor count = 0; timer = 0; end = random(50,100); maxSize = 10;// rect width size divid = this.end/this.maxSize; } void run() { x += cos(this.angle)*this.speed; y += sin(this.angle)*this.speed; v += random(1)*.045 - .02;// change angle v *= .93; angle += v; drawSegment(x,y,x1,y1,(maxSize-(timer/divid))); timer++; if(x>width || x<0 || y>height+10 || y<0 || timer>end) { // set draw area x = originX; y = originY; angle = (random(1)*(2*PI))-PI; endornot=true; timer = 0; end = random(30,150); // length of plant divid = end/maxSize; } else{ endornot=false; } x1 = x; y1 = y; } }