double dist, dire; point p[] = new point[7]; point ip[] = new point[7]; point mp[] = new point[7]; point ep[] = new point[7]; point lp[] = new point[7]; int i; //sample [setup, 300, 300]{ p[0] = point(150, 150); p[1] = point(150, 150); p[2] = point(150, 150); p[3] = point(150, 150); p[4] = point(150, 150); p[5] = point(150, 150); p[6] = point(150, 150); ip[0] = point(150, 150); ip[1] = point(150, 150); ip[2] = point(150, 150); ip[3] = point(150, 150); ip[4] = point(150, 150); ip[5] = point(150, 150); ip[6] = point(150, 150); mp[0] = point(200, 200); mp[1] = point(200, 100); mp[2] = point(150, 200); mp[3] = point(150, 200); mp[4] = point(150, 200); mp[5] = point(100, 100); mp[6] = point(100, 200); ep[0] = point(200, 100); ep[1] = point(100, 100); ep[2] = point(100, 150); ep[3] = point(170, 150); ep[4] = point(100, 150); ep[5] = point(100, 200); ep[6] = point(200, 200); lp[0] = point(100, 100); lp[1] = point(100, 200); lp[2] = point(100, 200); lp[3] = point(100, 200); lp[4] = point(100, 200); lp[5] = point(200, 200); lp[6] = point(200, 200); setBackColor(255, 255, 255); } [paint]{ clearAll(); setColor(0, 0, 0); for(i = 0; i < p.length - 1; i ++){ drawLine(p[i].x, p[i].y, p[i + 1].x, p[i + 1].y); } } [interval, 3, 9]{ for(i = 0; i < p.length; i++){ ip[i] = mp[i]; } } [interval, 6, 9]{ for(i = 0; i < p.length; i++){ ip[i] = ep[i]; } } [interval, 8.9, 9]{ for(i = 0; i < p.length; i++){ ip[i] = lp[i]; } } [always]{ for(i = 0; i < p.length; i++){ dist = p[i].distanceTo(ip[i]); dire = p[i].directionTo(ip[i]); p[i].push(dist / 5., dire); } }