public void CreateScenario(ParticleSystem a_ParticleSystem) { Particle p1 = new Particle(1f); p1.Position = new Vector2(3, 4); Particle p2 = new Particle(1f); p2.Position = new Vector2(-3, 4); a_ParticleSystem.AddParticle(p1); a_ParticleSystem.AddParticle(p2); new CircularWireConstraint(p1, p1.Position + Vector2.right, a_ParticleSystem); new CircularWireConstraint(p2, p2.Position + Vector2.left, a_ParticleSystem); Particle p3 = new Particle(1); p3.Position = new Vector2(3, 2); Particle p4 = new Particle(1); p4.Position = new Vector2(-3, 2); Particle p5 = new Particle(1); p5.Position = new Vector2(-4, 0); Particle p6 = new Particle(1); p6.Position = new Vector2(0, 0); Particle p7 = new Particle(1); p7.Position = new Vector2(4, 0); a_ParticleSystem.AddParticle(p3); a_ParticleSystem.AddParticle(p4); a_ParticleSystem.AddParticle(p5); a_ParticleSystem.AddParticle(p6); a_ParticleSystem.AddParticle(p7); Force f1 = new HooksLawSpring(p1, p3, 1, 1, 1f); Force f2 = new HooksLawSpring(p2, p4, 1, 1, 1f); Force f3 = new HooksLawSpring(p3, p7, 1, 1, 1f); Force f4 = new HooksLawSpring(p3, p6, 1, 1, 1f); Force f5 = new HooksLawSpring(p4, p6, 1, 1, 1f); Force f6 = new HooksLawSpring(p4, p5, 1, 1, 1f); Force f7 = new HooksLawSpring(p7, p6, 3, 1, 1f); Force f8 = new HooksLawSpring(p7, p5, 3, 1, 1f); Force f9 = new HooksLawSpring(p6, p5, 3, 1, 1f); a_ParticleSystem.AddForce(f1); a_ParticleSystem.AddForce(f2); a_ParticleSystem.AddForce(f3); a_ParticleSystem.AddForce(f4); a_ParticleSystem.AddForce(f5); a_ParticleSystem.AddForce(f6); a_ParticleSystem.AddForce(f7); a_ParticleSystem.AddForce(f8); a_ParticleSystem.AddForce(f9); a_ParticleSystem.AddForce(new GravityForce(.1f)); }
public void CreateScenario(ParticleSystem a_ParticleSystem) { ViscousDragForce drag = new ViscousDragForce(0.1f); a_ParticleSystem.AddForce(drag); GravityForce gravity = new GravityForce(0.1f); a_ParticleSystem.AddForce(gravity); Particle p1 = new Particle(1f); p1.Position = new Vector2(-3f, 0f); a_ParticleSystem.AddParticle(p1); Particle p2 = new Particle(1f); p2.Position = new Vector2(3f, 0f); a_ParticleSystem.AddParticle(p2); HooksLawSpring spring1 = new HooksLawSpring(p1, p2, 3f, 10f, 10f); a_ParticleSystem.AddForce(spring1); }
public void CreateScenario(ParticleSystem a_ParticleSystem) { const float particleMass = 1f; Particle p1 = new Particle(particleMass); p1.Position = new Vector2(-3f, 3.5f); a_ParticleSystem.AddParticle(p1); new CircularWireConstraint(p1, new Vector2(-2f, 3.5f), a_ParticleSystem); Particle p3 = new Particle(particleMass); p3.Position = p1.Position + new Vector2(0.5f, 0f); a_ParticleSystem.AddParticle(p3); new RodConstraint(p1, p3, a_ParticleSystem); Particle p2 = new Particle(particleMass); p2.Position = new Vector2(2f, 3.5f); a_ParticleSystem.AddParticle(p2); new CircularWireConstraint(p2, new Vector2(3f, 3.5f), a_ParticleSystem); Particle p4 = new Particle(particleMass); p4.Position = p2.Position + new Vector2(0.5f, 0f); a_ParticleSystem.AddParticle(p4); new RodConstraint(p2, p4, a_ParticleSystem); new RodConstraint(p3, p4, a_ParticleSystem); // With springs const float springConstant = 75f; const float dampingConstant = 40f; Particle p5 = new Particle(particleMass); p5.Position = new Vector2(-3f, 1); a_ParticleSystem.AddParticle(p5); new CircularWireConstraint(p5, new Vector2(-2f, 1), a_ParticleSystem); Particle p6 = new Particle(particleMass); p6.Position = p5.Position + new Vector2(0.5f, 1f); a_ParticleSystem.AddParticle(p6); HooksLawSpring s1 = new HooksLawSpring(p5, p6, 0.5f, springConstant, dampingConstant); a_ParticleSystem.AddForce(s1); Particle p7 = new Particle(particleMass); p7.Position = new Vector2(2f, 1); a_ParticleSystem.AddParticle(p7); new CircularWireConstraint(p7, new Vector2(3f, 1), a_ParticleSystem); Particle p8 = new Particle(particleMass); p8.Position = p7.Position + new Vector2(0.5f, 1f); a_ParticleSystem.AddParticle(p8); HooksLawSpring s2 = new HooksLawSpring(p7, p8, 0.5f, springConstant, dampingConstant); a_ParticleSystem.AddForce(s2); new RodConstraint(p6, p8, a_ParticleSystem); Particle q1 = new Particle(particleMass); q1.Position = new Vector2(-3f, -1.5f); a_ParticleSystem.AddParticle(q1); new CircularWireConstraint(q1, new Vector2(-2f, -1.5f), a_ParticleSystem); Particle q2 = new Particle(particleMass); q2.Position = new Vector2(2f, -1.5f); a_ParticleSystem.AddParticle(q2); new CircularWireConstraint(q2, new Vector2(3f, -1.5f), a_ParticleSystem); new RodConstraint(q1, q2, a_ParticleSystem); Particle a1 = new Particle(1); Particle a2 = new Particle(1); Particle a3 = new Particle(1); Particle a4 = new Particle(1); a1.Position = new Vector2(-4, -3); a2.Position = new Vector2(0, -3); a3.Position = new Vector2(0, -5); a4.Position = new Vector2(4, -5); a_ParticleSystem.AddParticle(a1); a_ParticleSystem.AddParticle(a2); a_ParticleSystem.AddParticle(a3); a_ParticleSystem.AddParticle(a4); new CircularWireConstraint(a1, a1.Position + Vector2.down, a_ParticleSystem); new CircularWireConstraint(a2, a2.Position + Vector2.down, a_ParticleSystem); new CircularWireConstraint(a3, a3.Position + Vector2.up, a_ParticleSystem); new CircularWireConstraint(a4, a4.Position + Vector2.up, a_ParticleSystem); new RodConstraint(a1, a2, a_ParticleSystem); new RodConstraint(a2, a3, a_ParticleSystem); new RodConstraint(a3, a4, a_ParticleSystem); }
public void CreateScenario(ParticleSystem a_ParticleSystem) { Particle particle1 = new Particle(1000f); particle1.Position = new Vector2(-2f, 0f); a_ParticleSystem.AddParticle(particle1); Particle particle2 = new Particle(1f); particle2.Position = new Vector2(0f, 5f); a_ParticleSystem.AddParticle(particle2); Particle particle3 = new Particle(1f); particle3.Position = new Vector2(4f, 4f); a_ParticleSystem.AddParticle(particle3); Force angleforce = new AngularSpringForce(particle2, particle1, particle3, Mathf.PI / 2, 1f, 0.1f); a_ParticleSystem.AddForce(angleforce); Force spring1 = new HooksLawSpring(particle1, particle2, 2, 1, .1f); Force spring2 = new HooksLawSpring(particle3, particle2, 2, 1, .1f); a_ParticleSystem.AddForce(spring1); a_ParticleSystem.AddForce(spring2); Force gravityForce = new GravityForce(.001f); a_ParticleSystem.AddForce(gravityForce); Particle p6 = new Particle(.5f); p6.Position = new Vector2(0, -4); a_ParticleSystem.AddParticle(p6); Particle p7 = new Particle(1); p7.Position = new Vector2(0, -5f); a_ParticleSystem.AddParticle(p7); new RodConstraint(p6, p7, a_ParticleSystem); Particle p5 = new Particle(500f); p5.Position = new Vector2(2, 2); a_ParticleSystem.AddParticle(p5); new CircularWireConstraint(p5, p5.Position + Vector2.right, a_ParticleSystem); Particle p8 = new Particle(0.5f); p8.Position = new Vector2(-3, -1); a_ParticleSystem.AddParticle(p8); new FixedPointConstraint(p8, a_ParticleSystem); Particle p9 = new Particle(.5f); p9.Position = new Vector2(-3, -2); a_ParticleSystem.AddParticle(p9); new HLineConstraint(p9, a_ParticleSystem); Particle p10 = new Particle(.5f); p10.Position = new Vector2(5, -2); a_ParticleSystem.AddParticle(p10); new VLineConstraint(p10, a_ParticleSystem); Particle q1 = new Particle(.5f); q1.Position = new Vector2(-3, 3); a_ParticleSystem.AddParticle(q1); new EllipticalWireConstraint(q1, q1.Position + new Vector2(1f, -.3f), q1.Position + new Vector2(-1f, -1f), a_ParticleSystem); Force dragForce = new ViscousDragForce(.2f); a_ParticleSystem.AddForce(dragForce); }