class wanderer{ float currentX; float currentY; float prevX; float prevY; float pprevX; float pprevY; float nextX; float nextY; float velocity; float prevvelocity; float acceleration; float[] parameters=new float[9]; wanderer(float x, float y, float par[]){ currentX=nextX=prevX=pprevX=x; currentY=nextY=prevY=pprevY=y; velocity=prevvelocity=0.0f; acceleration=0.0f; for(int i=0;i<9;i++){ parameters[i]=par[i]; } } void update(){ nextX=parameters[8]*(sin(parameters[0]*currentY)+parameters[2]*cos(parameters[0]*currentX))+(1.0f-parameters[8])*(currentY+parameters[4]*currentX/abs(currentX)*sqrt(abs(parameters[5]*currentX-parameters[6]))); nextY=parameters[8]*(sin(parameters[1]*currentX)+parameters[3]*cos(parameters[1]*currentY))+(1.0f-parameters[8])*(parameters[7]-currentX); pprevX=prevX; pprevY=prevY; prevX=currentX; prevY=currentY; currentX=nextX; currentY=nextY; prevvelocity=velocity; velocity=dist(currentX,currentY,prevX,prevY); acceleration=abs(velocity-prevvelocity); } }