public KinematicsSystem Initialize(Size area)
        {
            screenArea = area;


            ParticleGenerator generator = new ParticleGenerator();

            system = new KinematicsSystem();

            system.AddParticles(generator.Generate(particleCount, new Vector2(screenArea.Width / 2, 100), Vector2.Zero));

            system.AddForceField(new ConstantGravityField());

            system.AddConstraints(new RectangleBoundaryConstraint(new Rectangle(Point.Zero, area)));

            return(system);
        }
        public KinematicsSystem Initialize(Size area)
        {
            screenArea = area;


            ParticleGenerator generator = new ParticleGenerator();

            system = new KinematicsSystem();

            system.AddParticles(generator.Generate(particleCount,
                                                   i => new Vector2(50 + 200 * i, 200),
                                                   i => Vector2.Zero));

            system.AddConstraints(new TwoBodyConstraint(new CollisionConstraint(), new AllPairs()));

            system.Particles.First().Velocity.X = 100;

            return(system);
        }