FAQ
Cover
This is the archive Discourse for the Processing (ALPHA) software.
Please visit the new Processing forum for current information.

   Processing 1.0 _ALPHA_
   Programming Questions & Help
   Programs
(Moderators: fry, REAS)
   beginner particle systems?
« Previous topic | Next topic »

Pages: 1 
   Author  Topic: beginner particle systems?  (Read 3647 times)
lunetta

7200475272004752 WWW Email
beginner particle systems?
« on: Mar 31st, 2005, 5:39am »

Hi
 
I need to build some example-sketches for my projects with particle systems;
 
I need to build "simple" things; particle field responding to a gravity pole, or to a repeller pole, or assuming a certain shape like a circle.
 
I have already seen a lot of examples like this around; but I browsed around and could only find much much more complex stuff.
 
Does anyone has recommendations of sketches or theory pages to point me to?
 
Really Grateful for any link
 
kurol


Re: beginner particle systems?
« Reply #1 on: Mar 31st, 2005, 10:03am »

I'm new to this too, I think this tutorial (also found on tutorial page) is a good starting place if you're a n00b like me.
 

I hate programming . . .
st33d

WWW Email
Re: beginner particle systems?
« Reply #2 on: Mar 31st, 2005, 3:42pm »

Eskimoblood pointed me to a lingo script that could be deciphered to create gravity effects.
 
The trick seemed to be concentrating on the x and y acceleration separately and leaving a space around the mouse where gravity is killed so the particle isn't accelerated too hard.
 
Code:

particle [] p = new particle [10];
void setup(){
  for(int i = 0; i < p.length; i++){
    p[i] = new particle(random(400),random(400),random(10));
  }
  size (400,400);
}
void loop(){
  background (255);
  for(int i = 0; i<p.length; i++){
    p[i].gmove();
    p[i].draw();
  }
  line(mouseX,0,mouseX,height);
}
class particle{
  float x,y,thisMass,xVelocity;
  particle (float x, float y, float thisMass){
    this.x = x;
    this.y = y;
    this.thisMass = thisMass;
    xVelocity = 0;
  }
  void gmove(){
    float mouseMass = 5;
    float distX = mouseX - x;
    //introduce the y and use pythagoras for the distance with two axises
    /*
    float distY = mouseY - y;
    float dist = sqrt(sq(distX) + sq(distY));
    */
    float dist = abs(distX); //remove this line for two axises
    //kill acceleration to create an orbit if too near mouse
    if (dist < 15){
 dist = 15;
    }
    //gravity equations - x axis only so you can pick it apart
    float grav = (thisMass * mouseMass) / sq(dist) * 5;
    float xGrav = grav * (distX/dist);
    float xAccel = xGrav / thisMass;
    xVelocity += xAccel;
    x += xVelocity;
    /*
    float yGrav = grav * (distY/dist);
    float yAccel = yGrav / thisMass;
    yVelocity += yAccel;
    y += yVelocity;
    */
  }
  void draw(){
    ellipse(x-5,y-5,10,10);
  }
}
« Last Edit: Mar 31st, 2005, 3:45pm by st33d »  

I could murder a pint.
lunetta

7200475272004752 WWW Email
Re: beginner particle systems?
« Reply #3 on: Mar 31st, 2005, 4:24pm »

nice! thanks
 
kurol


Re: beginner particle systems?
« Reply #4 on: Mar 31st, 2005, 10:15pm »

Here's my 1st attempt at making a class and particles.
particleman
 
When you click around the black box, particles will start ejecting from the mouse cursor.
 

I hate programming . . .
st33d

WWW Email
Re: beginner particle systems?
« Reply #5 on: Mar 31st, 2005, 11:25pm »

Top dollar. I may have to try implementing that Kurol. I've been wondering how to get some fun action out of my motion reactive particles below. A bouncy spawner would be cool.
 
http://www.st33d.net/processing/mfeed.pde
 

I could murder a pint.
Pages: 1 

« Previous topic | Next topic »