/* Program goals: 2.22.2003 -in btown -Emulate 2D particle-field interactions -Upgradeable to 3D Adjustments and effects: -numParts: performance IP to square -timeStep: time used to calc displacement of each frame, time for each frame -frameStep: Actual pause (ms) btewn frames -forceFactor: larger means more inertia -forcePower: exponent of distance 2.25.2003: > working on tracker algorithm PROB: -Slight offset in offsets is divergent from particle CAUSE: -The acceleration of the collective particles overcomes the adjustment algorithm - the offsets arnen't adding fast enough to keep up with the body. SOLN: -Reexamine follower algorithm -make adjustment for some average velocity, like have a coefficient that is DP to velocity. FIXED: -simplified algorithm > Optimized conditionals in update(g) PROB: ? - Eventually particles are divergent CAUSE: - energy of system increases due to invalid FORCE(dist) function SOLN: - use units, convert px to meters or Km and just use science instead of minor adjustment tweaks. > adjusting tracker to follow system center of mass LATER: centerX = sum(m1*x1 m2*x2 ...)/sum(m1 m2 ...) 2.28.2003 - Adding text input for forcePower variable. 3.13.2003 - -Focus window by zooming out, instead of following one particle. - the goal: keep all particles on the screen START: - Calculate furthest distance between max and min x and y values - Must also center w/ an offset.. - use offset of minx + (maxx-minx)/2 and miny + (maxy-miny)/2 - the logic? -the minimum x or y value should be at or near the minimum point of the screen. - test: - if minx = 0 and maxx = 500, then offset = 0 + 500/2 = 250. // SHOULD BE 0. - iterate: - so maybe xoff = minx + (maxx-minx)/2 - MAXX/2; - test: minx=-500, maxx=0; xoff = -500 + (500)/2 - 250 = -500; NO. minx+xoff should = 0; -Simplify: -screen should center on the point (maxx-minx)/2, (maxy-miny)/2. -Study: given a point (x, y), how to center there? -offset the point being drawn by the difference between that point and the center point? given a range of occupied space, how to zoom to fit screen? - multiply all positions by a factor.. no, that is dependent on the quadrant. Taking out current follower code. -increased part mass, sped up timestep GOAL: stabalize - reduced forcePower to .5 - reduced forceFactor too. more stable, clumpy now */