private void Initialize() { this.InitializeStatusStrip(); var radius = (int)udRadius.Value; var people = 1; byte steps = (byte)udSteps.Value; this.TicksMax = (int)udTicks.Value; CoViD.CL.Person.IsolationThreshold = (byte)this.udIsolation.Value; this.regionL.SetXY(radius, "People"); this.regionR.SetXY(radius, "Contamination"); var tv = (this.TicksMax / 1); this.xyViruses.SetXY( 0, tv, "0", tv.ToText(), "Ticks", 0, 1, "0", 1.ToText(), "" ); // ------------------------------------------------------------------------------------- // var population = new CoViD.CL.Population(); for (int i = 0; i < people; i++) { var locations = new CoViD.CL.Locations(radius, steps); var person = new CoViD.CL.Person(locations); person.Sneeze += this.Person_Sneeze; person.Inhale += this.Person_Inhale; population.Add(person); } // ------------------------------------------------------------------------------------- // var hospitals = new CoViD.CL.Hospitals() { new CoViD.CL.Hospital(new CoViD.CL.Point(radius, radius), 500) }; this.Grid = new CoViD.CL.Grid(radius, population, hospitals); this.Grid.Remove += this.Grid_Remove; this.Grid.Add += this.Grid_Add; // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // // Simulate the sneeze of the first infected person. This creates a contaminated grid this.Grid.Contaminate(1000, new CoViD.CL.Point(0, 0)); // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // }
private void ud_Click(object sender, EventArgs e) { var virusGrowth = (decimal)(udVirusesGrowth.Value / 100); var antibodyGrowth = (decimal)(udAntibodiesGrowth.Value / 100); var antibodyDecay = (decimal)(udAntibodiesDecay.Value / 100); var deadThreshold = (decimal)0.95; byte mobility = 100; var locations = new CoViD.CL.Locations(); var person = new CoViD.CL.Person(locations, virusGrowth, antibodyGrowth, antibodyDecay, deadThreshold, mobility); Loop(person); }
/// <summary> /// /// </summary> /// <param name="person"></param> private void Loop(CoViD.CL.Person person) { this.Person = person; float xMin = 0; float yMin = 0; float xMax = txtXMax.Text.ToFloat(1000); float yVMax = txtYVMax.Text.ToFloat(1000 * 1000 * 1000); float yAMax = txtYAMax.Text.ToFloat(150 * 1000 * 1000); this.xy1.SetXY( xMin, xMax, xMin.ToText(0), xMax.ToText(0), "Time [ticks]", yMin, yVMax, yMin.ToText(0), yVMax.ToString("0.00 E+00"), "# Viruses [Unities of]" ); this.xy2.SetXY( xMin, xMax, xMin.ToText(0), xMax.ToText(0), "Time [ticks]", yMin, yAMax, yMin.ToText(0), yAMax.ToString("0.00 E+00"), "# Antibodies [Unities of]" ); var viruses = udVirusesN.Value; Func <CoViD.CL.Point, decimal> person_Inhale = (location) => { return(viruses); }; person.Inhale += new CoViD.CL.Person.InhaleDelegate(person_Inhale); udVirusesGrowth.Value = person.VirusGrowth * 100; udAntibodiesGrowth.Value = person.AntibodyGrowth * 100; udAntibodiesDecay.Value = person.AntibodyDecay * 100; int iMax = txtXMax.Text.ToInt(1000); for (int i = 0; i < iMax; i++) { person.Tick(); this.xy1.Cartesian.Point(i, person.Viruses, person.State.ToColor()); this.xy2.Cartesian.Point(i, person.Antibodies, Color.Green); if (person.IsDead) { break; } } { lblVmax2.Text = "0"; // person.VirusMaxPercent.ToPercent2(); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNewEvolution_Click(object sender, EventArgs e) { //this.ledGreen.On = false; //this.ledYellow.On = false; //this.ledRed.On = false; //this.ledBlue.On = false; //this.ledWhite.On = false; var person = new CoViD.CL.Person(new CoViD.CL.Locations() { new CoViD.CL.Point(0, 0) }); this.Loop(person); this.Text = DateTime.Now.ToString(); }
private void Initialize() { this.InitializeStatusStrip(); var radius = (int)this.INICoViD.Radius; ; var people = this.INICoViD.People; byte steps = this.INICoViD.Steps; ; this.TicksMax = this.INICoViD.Ticks; ; this.tsPeople.Text = people.ToText(); this.tsIsolation.Text = this.INICoViD.Isolation.ToText(); this.regionL.SetXY(radius, "People"); this.regionR.SetXY(radius, "Contamination"); this.xySIR.SetXY( 0, this.TicksMax, "0", this.TicksMax.ToText(), "Ticks", 0, people, "0", people.ToText(), "" ); int deltaMax = 10; /// (int)Math.Round((double)(people / (double)10)); this.xyDSIR.SetXY( 0, this.TicksMax, "0", this.TicksMax.ToText(), "Ticks", -deltaMax, deltaMax, (-deltaMax).ToText(), deltaMax.ToText(), "" ); var y2Max = 4 * (radius / 100) * (radius / 100); this.xyContaminated.SetXY( 0, this.TicksMax, "0", this.TicksMax.ToText(), "Ticks", 0, y2Max, "0", y2Max.ToText(), "Contaminated grids" ); this.xyPerformances.SetXY( 0, this.TicksMax, "0", this.TicksMax.ToText(), "Ticks", 0, 150, "0", 150.ToText(), "Milliseconds" ); // ------------------------------------------------------------------------------------- // this.regionL.Cartesian.Clear(); this.regionR.Cartesian.Clear(); Application.DoEvents(); // ------------------------------------------------------------------------------------- // var population = new CoViD.CL.Population(); var locations0 = new CoViD.CL.Locations(radius, steps); var p0 = new CoViD.CL.Person(locations0); for (int i = 0; i < people; i++) { var locations = new CoViD.CL.Locations(radius, steps); var person = new CoViD.CL.Person(locations); person.Sneeze += this.Person_Sneeze; person.Inhale += this.Person_Inhale; population.Add(person); } // ------------------------------------------------------------------------------------- // var hospitals = new CoViD.CL.Hospitals(){ new CoViD.CL.Hospital(new CoViD.CL.Point(radius, radius), 500) }; this.Grid = new CoViD.CL.Grid(radius, population, hospitals); this.Grid.Remove += this.Grid_Remove; this.Grid.Add += this.Grid_Add; this.Contaminate(); }