Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 public KuralComponent(Kural kural) : this()
 {
     SetKural(kural);
 }