Ejemplo n.º 1
0
    /// <summary>
    /// call this method to initialize the swarm
    /// </summary>
    public void Setup()
    {
        AbsoluteDrift = 0;
        particles     = new Particle[initialParticles];
        float mean   = Random.Range(initialMeanRange.x, initialMeanRange.y);
        float stdDev = Random.Range(initialStandardDeviationRange.x, initialStandardDeviationRange.y);

        for (int i = 0; i < initialParticles; i++)
        {
            float normalDistributedRandomNumber = MarsagliaGenerator.Next() * stdDev + mean;
            particles[i] = new Particle(normalDistributedRandomNumber);
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// this is the prime differential equation for particle movement
 /// </summary>
 /// <param name="particle"></param>
 public void ApplyDrift(Particle particle)
 {
     particle.X += (particle.X * RelativeDrift * relativeDriftWeight + AbsoluteDrift * absoluteDriftWeight) * Time.deltaTime + diffuse * MarsagliaGenerator.Next() * Time.deltaTime;
 }