import traer.physics.*; ParticleSystem physics; Particle[][] particles; int gridSize = 30; float gridStepX,gridStepY; void setup() { size(700, 700); smooth(); // noStroke(); noFill(); physics = new ParticleSystem(2, 0.05); particles = new Particle[gridSize][gridSize]; gridStepX = (float) (width / gridSize); gridStepY = (float) (height / gridSize); for (int i = 0; i < gridSize; i++) { for (int j = 0; j < gridSize; j++) { particles[i][j] = physics.makeParticle(0.2, sin(float(j)/180*3.14) * gridStepX + (width / 4), cos(float(i)/180*3.14) * gridStepY + 20, 0.0); if (j > 0) { physics.makeSpring(particles[i][j - 1], particles[i][j], 18.0, 0.01, gridStepX); } } } for (int j = 0; j < gridSize; j++) { for (int i = 1; i < gridSize; i++) { physics.makeSpring(particles[i - 1][j], particles[i][j], 18.0, 0.01, gridStepY); } } particles[0][0].makeFixed(); particles[0][gridSize - 1].makeFixed(); background(255); } void draw() { physics.advanceTime(0.1); // if (mousePressed) // { for (int i = 0; i < gridSize; i++) { particles[i][0].moveTo(mouseX+i*2, mouseY+i*2, 0); // particles[i][0].moveTo(sin(float(i)/180*3.14)*200+200,cos(float(i)/180*3.14)*200+200,0); } // particles[0][gridSize - 1].velocity().clear(); // } // background(255); // vizszintes for (int i = 0; i < gridSize; i++) { //stroke(i,sin(float(i)/180*3.14)*255,i,sin(float(i)/180*3.14)*255); noStroke(); fill(255-i,sin(float(i)/180*3.14)*255,i,sin(float(i)/180*3.14)*255); beginShape(QUADS); vertex(particles[i][0].position().x(), particles[i][0].position().y()); for (int j = 0; j < gridSize; j++) { vertex(particles[i][j].position().x(), particles[i][j].position().y()); } vertex(particles[i][gridSize - 1].position().x(), particles[i][gridSize - 1].position().y()); endShape(); } for (int j = 0; j < gridSize; j++) { fill(j,sin(float(j)/180*3.14)*255,j,sin(float(j)/180*3.14)*255); beginShape(QUADS); vertex(particles[0][j].position().x(), particles[0][j].position().y()); for (int i = 0; i < gridSize; i++) { vertex(particles[i][j].position().x(), particles[i][j].position().y()); } vertex(particles[gridSize - 1][j].position().x(), particles[gridSize - 1][j].position().y()); endShape(); } loadPixels(); color c; for (int i=0;i