Particle Emitters - Part III

August 30, 2022

And here are the actual effects themselves. It generates the actual effect:


function WhirlEmitter(point,color)
{
    this.position = point; //Vector
    this.velocity =Vector.fromAngle(0,.5); // Vector
    this.spread = Math.PI/1; //possible angles = velocity +/- spread
    this.drawColor ="#999"; // So we can tell them apart from Fields later
    this.particleColor = color;
    this.maxParticles = 100;
    this.particleSize = 1;
    this.numParticles = 0;
    this.emissionRate = 1;
    this.tether = rand(60,100);
}

WhirlEmitter.prototype.emit = function()
{
    var angle =this.velocity.getAngle() + this.spread - (Math.random() * this.spread * 2);
    var magnitude =this.velocity.getMagnitude();

    var velocity = newVector(0,0);//Vector.fromAngle(angle, magnitude);
    var position = newVector(this.position.x + velocity.x * 25, this.position.y + velocity.y * 25);
    var particle = newParticle(position,velocity,new Vector(0,0),this.particleColor,2);
    particle.action ="whirlParticle";
    particle.particleColor =this.particleColor;//'rgb(' + rand(0,255) + ','+ rand(0,255) + ','+ rand(0,255)+ ')'
    particle.tether =rand(1,360)/100;
    particle.origin = newVector(this.position.x, this.position.y);

    //this.position.x++;
    return particle;
};


function whirlParticle(particle)
{
    //alert(particle.life +":" + particle.tether);
    var tmpX = particle.origin.x+ particle.radius * Math.cos(particle.tether);
    var tmpY = particle.origin.y+ particle.radius * Math.sin(particle.tether);
    particle.position = newVector(tmpX, tmpY);
    particle.tether+=.25;
    particle.particleSize-=.01;
   
    if(particle.tether > 7)
    {
       particle.tether = .36;
       particle.radius-=5;
    }
   
    if(particle.radius < 0 ||particle.particleSize <= 0)
    {
        return"";
    }

    return particle;
}

 

Grow your business.
I am focused on helping start-ups in stabilizing and growing through strategy and analysis. Reach out to me today to start growing your business.
Start Now