Presentation is loading. Please wait.

Presentation is loading. Please wait.

FUNDAMENTALS OF PROGRAMMING SM1204 Semester A 2010/2011.

Similar presentations


Presentation on theme: "FUNDAMENTALS OF PROGRAMMING SM1204 Semester A 2010/2011."— Presentation transcript:

1 FUNDAMENTALS OF PROGRAMMING SM1204 Semester A 2010/2011

2 Due date 26 Nov Collection via ACS Assignment 2

3 Requirements o Design and simulate set of objects (20%) o e.g. germs, ants, cars, o Use of "for" statements and “array” data structures (20%) o With interaction among objects (30%) o Creative object behaviors (30%) o Note that graphic is not important in this assignment

4 Example  http://processing.org/learning/topics/flocking.html

5 Example – Simple germs int n = 80; float ballSize = 5; float[] x = new float[n]; float[] y = new float[n]; float[] sx = new float[n]; float[] sy = new float[n]; void setup() { size(200, 200); smooth(); for (int i=0; i<n; i++) { x[i] = random(10, width-10); y[i] = random(10, height-10); sx[i] = random(-1, 1); sy[i] = random(-1, 1); } Define and initialization data (arrays)

6 Example – Simple germs void move() { for (int i=0; i<n; i++) { x[i] += sx[i]; y[i] += sy[i]; if (x[i] < 0) { x[i] = 0; sx[i] = -sx[i]; } if (x[i] > width) { x[i] = width; sx[i] = -sx[i]; } if (y[i] < 0) { y[i] = 0; sy[i] = -sy[i]; } if (y[i] > height) { y[i] = height; sy[i] = -sy[i];} } How objects move

7 Example – Simple germs void draw() { background(200); for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { float d = dist(x[i], y[i], x[j], y[j]); if (d < 30) { float c = map(d, 0, 30, 0, 200); stroke(c); line(x[i], y[i], x[j], y[j]); } stroke(0); fill(255); for (int i=0; i<n; i++) { ellipse(x[i], y[i], ballSize, ballSize); } move(); } How objects display

8 Example – Simple germs for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { if (i != j) { float dx = 1 / (x[i] - x[j]); float dy = 1 / (y[i] - y[j]); dx = constrain(dx, -0.9, +0.9); dy = constrain(dy, -0.9, +0.9); sx[i] += dx; sy[i] += dy; sx[i] = constrain(sx[i], -3, +3); sy[i] = constrain(sy[i], -3, +3); } How objects interact with each other (insert this to function move() )

9 Useful Functions & References o map (value, low1, high1, low2, high2) o Re-maps a number from one range to another o constrain(value, min, max) o Constrains a value to not exceed a maximum and minimum value. o abs(value) o Calculates the absolute value (always position) of a number.


Download ppt "FUNDAMENTALS OF PROGRAMMING SM1204 Semester A 2010/2011."

Similar presentations


Ads by Google