public void SetKural(Kural kural) { this.SuspendLayout(); label1.Text = kural.ToString(Enums.InputType.Hassas); label2.Text = kural.ToString(Enums.InputType.Miktr); label3.Text = kural.ToString(Enums.InputType.Kirli); switch (kural.Hassaslık) { case Enums.Hassas.sağlam: label1.ForeColor = Color.LimeGreen; break; case Enums.Hassas.orta: label1.ForeColor = Color.MediumBlue; break; case Enums.Hassas.hassas: label1.ForeColor = Color.MediumVioletRed; break; } switch (kural.Miktar) { case Enums.Miktr.küçük: label2.ForeColor = Color.LimeGreen; break; case Enums.Miktr.orta: label2.ForeColor = Color.MediumBlue; break; case Enums.Miktr.büyük: label2.ForeColor = Color.MediumVioletRed; break; } switch (kural.Kirlilik) { case Enums.Kirli.küçük: label3.ForeColor = Color.LimeGreen; break; case Enums.Kirli.orta: label3.ForeColor = Color.MediumBlue; break; case Enums.Kirli.büyük: label3.ForeColor = Color.MediumVioletRed; break; } label5.Text = kural.GetKesisimX[0].ToString(); label7.Text = kural.GetKesisimX[1].ToString(); label9.Text = kural.GetKesisimX[2].ToString(); label5.Text = label5.Text.Length > 5 ? label5.Text.Substring(0, 5) : label5.Text; label7.Text = label7.Text.Length > 5 ? label7.Text.Substring(0, 5) : label7.Text; label9.Text = label9.Text.Length > 5 ? label9.Text.Substring(0, 5) : label9.Text; this.ResumeLayout(); }
public void Hesapla() { if (flowLayoutPanel1.Controls.Count != 8) { return; } int componentCounter = 0; double x1, x2, x3; x1 = (double)numericUpDown1.Value; x2 = (double)numericUpDown2.Value; x3 = (double)numericUpDown3.Value; // flowLayoutPanel1.Controls.Clear(); flowLayoutPanel1.SuspendLayout(); List <Kural> kurallar = new List <Kural>(); foreach (var list1 in core.KesisimList[0]) { foreach (var list2 in core.KesisimList[1]) { foreach (var list3 in core.KesisimList[2]) { Kural kural = new Kural(list1, list2, list3); kural.XValues(x1, x2, x3); kurallar.Add(kural); KuralComponent kuralComp = flowLayoutPanel1.Controls[componentCounter++] as KuralComponent; kuralComp.SetKural(kural); kuralComp.Visible = true; } } } var count = flowLayoutPanel1.Controls.OfType <KuralComponent>().Where(a => a.Visible == true).Count(); for (int i = componentCounter; i < 8; i++) { flowLayoutPanel1.Controls[i].Visible = false; } flowLayoutPanel1.ResumeLayout(); // <<Kurala ait Minimum kesişimi> , <Minimum değere sahip ara değer grafiğinin ağırlığı>> List <Tuple <double, double> > agirlikliDonusOrtTuple = new List <Tuple <double, double> >(); for (int i = 0; i < 5; i++) { Enums.Donus donus = (Enums.Donus)i; var item = kurallar.Where(a => a.DonusHizi == donus); //Çıktı Grafiğinin Ara değer grafiklerine karşılık gelen Enumlarını getir Tuple <double, double> maxTupple = null; if (item.Count() > 0) { var maxValue = item.Max(b => b.GetMinKesisimX); //Min. Gelen değerin Maximum değer seçimi var maxItem = item.First(a => a.GetMinKesisimX == maxValue); // Maximum değere sahip nesnenin bulunması maxTupple = new Tuple <double, double>(maxItem.GetMinKesisimX, maxItem.AğırlıkGetir(Enums.AgirlikMerkez.Donus)); agirlikliDonusOrtTuple.Add(maxTupple); } if (maxTupple != null) { var maxLabel = flowLayoutPanel2.Controls[i] as Label; string labelStr = maxTupple.Item1.ToString().Length > 5? maxTupple.Item1.ToString().Substring(0, 5): maxTupple.Item1.ToString(); maxLabel.Text = labelStr; Series series = chart4.Series.Any(a => a.Name == "area" + i)?chart4.Series["area" + i]: new Series("area" + i); series.ChartType = SeriesChartType.Area; series.Color = Color.FromArgb(175, 255 - (i * 51), i * 51, 255 / (i + 1)); series.Points.Clear(); var list = core.AreaHesapla(Enums.AgirlikMerkez.Donus, maxTupple.Item1, i); foreach (var l in list) { series.Points.AddXY(l.X, l.Y); } if (!chart4.Series.Contains(series)) { chart4.Series.Add(series); } } } List <Tuple <double, double> > agirlikliDeterjanOrtTuple = new List <Tuple <double, double> >(); for (int i = 0; i < 5; i++) { Enums.Deterjan deterjan = (Enums.Deterjan)i; var item = kurallar.Where(a => a.DeterjanMiktari == deterjan); Tuple <double, double> maxTupple = null; if (item.Count() > 0) { var maxValue = item.Max(b => b.GetMinKesisimX); //Maximum Seçimi var maxItem = item.First(a => a.GetMinKesisimX == maxValue); maxTupple = new Tuple <double, double>(maxItem.GetMinKesisimX, maxItem.AğırlıkGetir(Enums.AgirlikMerkez.Deterjan)); agirlikliDeterjanOrtTuple.Add(maxTupple); } if (maxTupple != null) { var maxLabel = flowLayoutPanel2.Controls[i] as Label; string labelStr = maxTupple.Item1.ToString().Length > 5? maxTupple.Item1.ToString().Substring(0, 5): maxTupple.Item1.ToString(); maxLabel.Text = labelStr; Series series = chart5.Series.Any(a => a.Name == "area" + i)?chart5.Series["area" + i]: new Series("area" + i); series.ChartType = SeriesChartType.Area; series.Color = Color.FromArgb(175, 255 - (i * 51), i * 51, 255 / (i + 1)); series.Points.Clear(); var list = core.AreaHesapla(Enums.AgirlikMerkez.Deterjan, maxTupple.Item1, i); foreach (var l in list) { series.Points.AddXY(l.X, l.Y); } if (!chart5.Series.Contains(series)) { chart5.Series.Add(series); } } } List <Tuple <double, double> > agirlikliSureOrtTuple = new List <Tuple <double, double> >(); for (int i = 0; i < 5; i++) { Enums.Sure sure = (Enums.Sure)i; var item = kurallar.Where(a => a.Suresi == sure); Tuple <double, double> maxTupple = null; if (item.Count() > 0) { var maxValue = item.Max(b => b.GetMinKesisimX); var maxItem = item.First(a => a.GetMinKesisimX == maxValue); maxTupple = new Tuple <double, double>(maxItem.GetMinKesisimX, maxItem.AğırlıkGetir(Enums.AgirlikMerkez.Sure)); agirlikliSureOrtTuple.Add(maxTupple); } if (maxTupple != null) { var maxLabel = flowLayoutPanel2.Controls[i] as Label; string labelStr = maxTupple.Item1.ToString().Length > 5? maxTupple.Item1.ToString().Substring(0, 5): maxTupple.Item1.ToString(); maxLabel.Text = labelStr; Series series = chart6.Series.Any(a => a.Name == "area" + i)?chart6.Series["area" + i]: new Series("area" + i); series.ChartType = SeriesChartType.Area; series.Color = Color.FromArgb(175, 255 - (i * 51), i * 51, 255 / (i + 1)); series.Points.Clear(); var list = core.AreaHesapla(Enums.AgirlikMerkez.Sure, maxTupple.Item1, i); foreach (var l in list) { series.Points.AddXY(l.X, l.Y); } if (!chart6.Series.Contains(series)) { chart6.Series.Add(series); } } } label15.Text = agirlikliDonusOrtTuple.AgirlikliOrtalamaExt(a => a.Item1, b => b.Item2).ToString(); label18.Text = agirlikliDeterjanOrtTuple.AgirlikliOrtalamaExt(a => a.Item1, b => b.Item2).ToString(); label17.Text = agirlikliSureOrtTuple.AgirlikliOrtalamaExt(a => a.Item1, b => b.Item2).ToString(); }
public KuralComponent(Kural kural) : this() { SetKural(kural); }