static void GenerateInitialData(Engine engine) { var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, randGenerator, 5, 2, GenerateRandomParticle); engine.AddParticle(emitter); //check attractor var attractorPosition = new MatrixCoords(10, 10); var attractor = new ParticleAttractor(attractorPosition, new MatrixCoords(0, 0), 1); engine.AddParticle(attractor); // 02.Test the ChaoticParticle through the ParticleSystemMain class // Create chaotic particle and add it to the engine var chaoticParticle = new ChaoticParticle(new MatrixCoords(15, 15), new MatrixCoords(1, 1), randGenerator); engine.AddParticle(chaoticParticle); // 04.Test the ChickenParticle class through the ParcticleSystemMain class. var chickenParticle = new ChickenParticle(new MatrixCoords(10, 10), new MatrixCoords(-1, 2), randGenerator, 20); engine.AddParticle(chickenParticle); // 06.Test the ParticleRepeller class through the ParticleSystemMain class // create repeller with large radius and power to see the result // because in one moment there are too many new chicken particles created var particleRepeller = new ParticleRepeller(new MatrixCoords(20, 20), new MatrixCoords(0, 0), 10, 20.0); engine.AddParticle(particleRepeller); }
static void Main(string[] args) { var renderer = new ConsoleRenderer(Rows, Cols); var particleOperator = new AdvancedParticleOperatorWithRepeller(); var engine = new Engine(renderer, particleOperator, null, 300); var chaoticParticle = new ChaoticParticle(new MatrixCoords(20, 20), new MatrixCoords(0, 0), RandomGenerator, 1); engine.AddParticle(chaoticParticle); var attractor = new ParticleAttractor(new MatrixCoords(15, 15), new MatrixCoords(0, 0), 2); engine.AddParticle(attractor); var repeller = new ParticleRepeller(new MatrixCoords(20, 15), new MatrixCoords(0, 0), 1, 5); engine.AddParticle(repeller); engine.AddParticle(new Particle(new MatrixCoords(20, 20), new MatrixCoords(0, 0))); var chickenParticle = new ChickenParticle(new MatrixCoords(15, 15), new MatrixCoords(0, 0), RandomGenerator, 3, new MatrixCoords(3, 6)); engine.AddParticle(chickenParticle); //GenerateInitialData(engine); engine.Run(); }
private static int DecreaseVectorCoordToPower(ParticleAttractor attractor, int pToAttrCoord) { if (Math.Abs(pToAttrCoord) > attractor.AttractionPower) { pToAttrCoord = (pToAttrCoord / (int)Math.Abs(pToAttrCoord)) * attractor.AttractionPower; } return pToAttrCoord; }
private static int DecreaseVectorCoordToPower(ParticleAttractor attractor, int pToAttrCoord) { if (Math.Abs(pToAttrCoord) > attractor.Power) { pToAttrCoord = (pToAttrCoord / (int)Math.Abs(pToAttrCoord)) * attractor.Power; } return(pToAttrCoord); }
private static int DecreasePower(ParticleAttractor attractor, int coord) { if (Math.Abs(coord) > attractor.AttractionPower && coord != 0) { coord = (coord / (int)Math.Abs(coord)) * attractor.AttractionPower; } return coord; }
private static MatrixCoords GetAccelerationFromParticleToAttractor(ParticleAttractor attractor, Particle particle) { var currParticleToAttractorVector = attractor.Position - particle.Position; int pToAttrRow = currParticleToAttractorVector.Row; pToAttrRow = DecreaseVectorCoordToPower(attractor, pToAttrRow); int pToAttrCol = currParticleToAttractorVector.Col; pToAttrCol = DecreaseVectorCoordToPower(attractor, pToAttrCol); var currAcceleration = new MatrixCoords(pToAttrRow, pToAttrCol); return currAcceleration; }
private static MatrixCoords GetAccelerationFromParticleToAttractor(ParticleAttractor attractor, Particle particle) { var currParticleToAttractorVector = attractor.Position - particle.Position; int pToAttrRow = currParticleToAttractorVector.Row; pToAttrRow = DecreaseVectorCoordToPower(attractor, pToAttrRow); int pToAttrCol = currParticleToAttractorVector.Col; pToAttrCol = DecreaseVectorCoordToPower(attractor, pToAttrCol); var currAcceleration = new MatrixCoords(pToAttrRow, pToAttrCol); return(currAcceleration); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new Particle( new MatrixCoords(0, 8), new MatrixCoords(-1, 0)) ); engine.AddParticle( new DyingParticle( new MatrixCoords(20, 5), new MatrixCoords(-1, 1), 12) ); engine.AddParticle(new ChaoticParticle( new MatrixCoords(15,15), new MatrixCoords(2,2), RandomGenerator)); engine.AddParticle(new ChickenParticle(new MatrixCoords(29, 0),new MatrixCoords(1,1),RandomGenerator)); var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); //engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); engine.AddParticle(attractor); engine.AddParticle(attractor2); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new Particle( new MatrixCoords(0, 8), new MatrixCoords(-1, 0)) ); engine.AddParticle( new DyingParticle( new MatrixCoords(20, 5), new MatrixCoords(-1, 1), 12) ); var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); //engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); engine.AddParticle(attractor); engine.AddParticle(attractor2); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new Particle( new MatrixCoords(10, 10), new MatrixCoords(0, 0)) ); engine.AddParticle( new DyingParticle( new MatrixCoords(20, 30), new MatrixCoords(-1, 1), 8) ); var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle); //engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(15, 15); var attractor = new ParticleAttractor(attractorPosition, new MatrixCoords(0, 0), 1); engine.AddParticle(attractor); var repellerPosition = new MatrixCoords(15, 25); var repeller = new ParticleRepeller(repellerPosition, new MatrixCoords(0, 0), 3, 10); engine.AddParticle(repeller); //engine.AddParticle( // new ChickenParticle( // new MatrixCoords(10, 10), // new MatrixCoords(0, 0), RandomGenerator, 2) // ); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new DyingParticle( new MatrixCoords(20, 5), new MatrixCoords(-1, 1), 12) ); ////Particle Emitter var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); //engine.AddParticle(emitter); //// Paritcle Attractor var attractorPosition = new MatrixCoords(15, 20); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 3); //engine.AddParticle(attractor); //// IMPORTANT! //// Exercises 1 and 2 -> //// check classes: ChaoticParticle, AdvancedParticalUpdater var crazyPosition = new MatrixCoords(15, 12); var crazy = new ChaoticParticle(crazyPosition, new MatrixCoords(0, 0), RandomGenerator, 1); var crazyPositiontoo = new MatrixCoords(15, 15); var crazytoo = new ChaoticParticle(crazyPositiontoo, new MatrixCoords(0, 0), RandomGenerator, 1); var crazyPositionmore = new MatrixCoords(15, 19); var crazymore = new ChaoticParticle(crazyPositionmore, new MatrixCoords(0, 0), RandomGenerator, 1); engine.AddParticle(crazy); engine.AddParticle(crazytoo); engine.AddParticle(crazymore); //// IMPORTANT! //// Exercises 3 and 4 -> //// check classes: ChickenParticle, AdvancedParticalUpdater var chickenPosition = new MatrixCoords(15, 12); var chcken = new ChickenParticle(chickenPosition, new MatrixCoords(0, 0), RandomGenerator, 1, 4); engine.AddParticle(chcken); //// IMPORTANT! //// Exercises 5 and 6 -> //// check classes: ParticleEmitter, AdvancedParticalUpdater var reppelerPosition = new MatrixCoords(18, 28); var reppeler = new ParticleRepeller( reppelerPosition, new MatrixCoords(0, 0), 3); //engine.AddParticle(reppeler); }
private static void GenerateInitialData(Engine engine) { /*engine.AddParticle( * new Particle( * new MatrixCoords(0, 8), * new MatrixCoords(-1, 0)) * ); * * engine.AddParticle( * new DyingParticle( * new MatrixCoords(20, 5), * new MatrixCoords(-1, 1), * 12) * );*/ // Test the ChaoticParticle. var chaoticParticle = new ChaoticParticle( new MatrixCoords(20, 25), new MatrixCoords(-1, 1), RandomGenerator); engine.AddParticle(chaoticParticle); // Test the ChickenParticle. var chickenParticle = new ChickenParticle( new MatrixCoords(25, 15), new MatrixCoords(0, 1), RandomGenerator); engine.AddParticle(chickenParticle); // Test the ParticleRepeller. var particleRepeller = new ParticleRepeller( new MatrixCoords(10, 13), new MatrixCoords(0, 0), 2, 10); engine.AddParticle(particleRepeller); var emitterPosition = new MatrixCoords(19, 15); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); // engine.AddParticle(attractor); // engine.AddParticle(attractor2); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new Particle( new MatrixCoords(0, 10), new MatrixCoords(1, 1)) ); var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, rand, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter); var emitterPosition2 = new MatrixCoords(2, 10); var emitterSpeed2 = new MatrixCoords(10, 5); var emitter2 = new ParticleEmitter(emitterPosition2, emitterSpeed2, rand, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter2); var emitterPosition3 = new MatrixCoords(15, 0); var emitterSpeed3 = new MatrixCoords(0, 0); var emitter3 = new ParticleEmitter(emitterPosition3, emitterSpeed3, rand, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter3); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); engine.AddParticle(attractor); engine.AddParticle(attractor2); var chaoticParticle = new ChaoticParticle(new MatrixCoords(15, 15), new MatrixCoords(1, 1), rand, 50, 50); //engine.AddParticle(chaoticParticle); var chickenParticle = new ChickenParticle(new MatrixCoords(15, 15), new MatrixCoords(1, 1), rand, 50, 50, 20, 10); //engine.AddParticle(chickenParticle); var repellerParticle = new ParticleRepeller(new MatrixCoords(15, 15), new MatrixCoords(0, 0), 1, 8); //engine.AddParticle(repellerParticle); }
private static void GenerateInitialData(Engine engine) { //engine.AddParticle( // new Particle( // new MatrixCoords(0, 5), // new MatrixCoords(1, 1)) // ); //engine.AddParticle( // new DyingParticle( // new MatrixCoords(20, 5), // new MatrixCoords(-1, 1), // 12) // ); var emitterPosition = new MatrixCoords(29, 3); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); //engine.AddParticle(attractor); //engine.AddParticle(attractor2); //Add one chaotic particle to the engine //engine.AddParticle( // new ChaoticParticle( // new MatrixCoords(15, 15), // new MatrixCoords(-1, 1), // RandomGenerator) // ); //Add one chicken particle to the engine //engine.AddParticle( // new ChickenParticle( // new MatrixCoords(15, 15), // new MatrixCoords(-1, 1), // RandomGenerator) // ); //Add one particle repeller to the engine //engine.AddParticle( // new ParticleRepeller( // new MatrixCoords(17, 20), // new MatrixCoords(0, 0), // 5, // 10) // ); }
private static void GenerateInitialData(Engine engine) { /*engine.AddParticle( new Particle( new MatrixCoords(0, 8), new MatrixCoords(-1, 0)) ); engine.AddParticle( new DyingParticle( new MatrixCoords(20, 5), new MatrixCoords(-1, 1), 12) );*/ // Test the ChaoticParticle. var chaoticParticle = new ChaoticParticle( new MatrixCoords(20, 25), new MatrixCoords(-1, 1), RandomGenerator); engine.AddParticle(chaoticParticle); // Test the ChickenParticle. var chickenParticle = new ChickenParticle( new MatrixCoords(25, 15), new MatrixCoords(0, 1), RandomGenerator); engine.AddParticle(chickenParticle); // Test the ParticleRepeller. var particleRepeller = new ParticleRepeller( new MatrixCoords(10, 13), new MatrixCoords(0, 0), 2, 10); engine.AddParticle(particleRepeller); var emitterPosition = new MatrixCoords(19, 15); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); // engine.AddParticle(attractor); // engine.AddParticle(attractor2); }
private static void GenerateInitialData(Engine engine) { engine.AddParticle( new Particle( new MatrixCoords(0, 10), new MatrixCoords(1, 1)) ); /*engine.AddParticle( * new DyingParticle( * new MatrixCoords(20, 5), * new MatrixCoords(-1, 1), * 12) * ); */ var emitterPosition = new MatrixCoords(29, 0); var emitterSpeed = new MatrixCoords(0, 0); var emitter = new ParticleEmitter(emitterPosition, emitterSpeed, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter); var emitterPosition2 = new MatrixCoords(0, 0); var emitterSpeed2 = new MatrixCoords(0, 0); var emitter2 = new ParticleEmitter(emitterPosition2, emitterSpeed2, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter2); var emitterPosition3 = new MatrixCoords(15, 0); var emitterSpeed3 = new MatrixCoords(0, 0); var emitter3 = new ParticleEmitter(emitterPosition3, emitterSpeed3, RandomGenerator, 5, 2, GenerateRandomParticle ); engine.AddParticle(emitter3); var attractorPosition = new MatrixCoords(10, 3); var attractor = new ParticleAttractor( attractorPosition, new MatrixCoords(0, 0), 1); var attractorPosition2 = new MatrixCoords(10, 13); var attractor2 = new ParticleAttractor( attractorPosition2, new MatrixCoords(0, 0), 3); //engine.AddParticle(attractor); //engine.AddParticle(attractor2); var chaoticParticle = new ChaoticParticle(new MatrixCoords(15, 15), new MatrixCoords(1, 1), RandomGenerator, 50, 50); //engine.AddParticle(chaoticParticle); var chickenParticle = new ChickenParticle(new MatrixCoords(15, 15), new MatrixCoords(1, 1), RandomGenerator, 50, 50, 20, 10); //engine.AddParticle(chickenParticle); var repellerParticle = new ParticleRepeller(new MatrixCoords(15, 15), new MatrixCoords(0, 0), 1, 8); engine.AddParticle(repellerParticle); }