Example #1
0
 private void buttonOk_Click(object sender, EventArgs e)
 {
     if (textBoxA.Text.CompareTo("") == 0)
     {
         textBoxA.Text = "0";
     }
     if (textBoxB.Text.CompareTo("") == 0)
     {
         textBoxB.Text = textBoxA.Text;
     }
     if (textBoxC.Text.CompareTo("") == 0)
     {
         textBoxC.Text = textBoxB.Text;
     }
     if (textBoxD.Text.CompareTo("") == 0)
     {
         textBoxD.Text = textBoxC.Text;
     }
     result = true;
     switch (comboType.SelectedItem.ToString())
     {
         case "Линейная Z":
             {
                 double a = Convert.ToDouble(textBoxA.Text);
                 double b = Convert.ToDouble(textBoxB.Text);
                 curFun = new zLinear(a, b);
             } break;
         case "Линейная Сплайн":
             {
                 double a = Convert.ToDouble(textBoxA.Text);
                 double b = Convert.ToDouble(textBoxB.Text);
                 curFun = new sLinear(a, b);
             } break;
         case "Треугольная":
             {
                 double a = Convert.ToDouble(textBoxA.Text);
                 double b = Convert.ToDouble(textBoxB.Text);
                 double c = Convert.ToDouble(textBoxC.Text);
                 curFun = new triangleFunc(a, b, c);
             } break;
         case "Трапецевидная":
             {
                 double a = Convert.ToDouble(textBoxA.Text);
                 double b = Convert.ToDouble(textBoxB.Text);
                 double c = Convert.ToDouble(textBoxC.Text);
                 double d = Convert.ToDouble(textBoxD.Text);
                 curFun = new trapFunc(a, b, c, d);
             } break;
     }
     Close();
 }
Example #2
0
        void drawFunc(Graphics grBack, fuzzyFuncs func, int w, int h)
        {
            List<PointF> pt = func.getValues();
            float dist = (float)((w - 20.0f) / model1.outService.dist);
            //term
            PointF[] points = new PointF[pt.Count];
            for (int i = 0; i < pt.Count; i++)
            {
                points[i] = new PointF((pt[i].X * dist) + 10, (h - 30.0f) - pt[i].Y * (h - 30.0f) + 10.0f);
            }
            grBack.DrawLines(new Pen(Color.Green, 2), points);

            for (int i = 0; i < points.Length; i++)
            {
                PointF p = points[i];
                grBack.FillEllipse(new SolidBrush(Color.Green), new RectangleF(p.X - 3, p.Y - 3, 6, 6));

            }
            //labels
            List<PointF> l = func.getValues(1.0f);
            float x = (l[1].X * dist) + 10;
               // for (int i = 0; i < l.Count-2; i++)
               // {
               //     x += (l[i].X * dist) + 10;
               // }
            //= (points[0].X+points[points.Length-1].X)/2.0f;
            //x /= 2;
            grBack.DrawString(func.fuzzyName, new Font("Arial", 8), new SolidBrush(Color.Red), new PointF(x, -2));
        }
Example #3
0
 void drawFunc(float r, Graphics grBack, fuzzyFuncs func, int w, int h)
 {
     float dist = (float)((w - 20.0f) / model1.outService.dist);
     //solution
     List<PointF> ptSolution = func.getValues(r);
     PointF[] ptsSolution = new PointF[ptSolution.Count];
     for (int i = 0; i < ptSolution.Count; i++)
     {
         ptsSolution[i] = new PointF((ptSolution[i].X * dist) + 10, (h - 30.0f) - ptSolution[i].Y * (h - 30.0f) + 10.0f);
     }
     grBack.FillPolygon(new HatchBrush(HatchStyle.Weave, Color.Black, Color.White), ptsSolution);
 }
        void drawFunc(bool key, Graphics grBack, fuzzyFuncs func, int w, int h)
        {
            List<PointF> pt = func.getValues();
            float dist = (float)((w - 20.0f) / U);
            PointF[] points = new PointF[pt.Count];
            for (int i = 0; i < pt.Count; i++)
            {
                points[i] = new PointF((pt[i].X * dist) + 10, (h - 30.0f) - pt[i].Y * (h - 30.0f) + 10.0f);
            }

            if (key)
            {
                Pen pen = new Pen(Color.Red, 3);
                pen.DashStyle = DashStyle.Dash;
                grBack.DrawLines(pen, points);
            }
            else
            {
                grBack.DrawLines(new Pen(Color.Green, 2), points);
            }
            for (int i = 0; i < points.Length; i++)
            {
                PointF p = points[i];
                grBack.FillEllipse(new SolidBrush(Color.Green), new RectangleF(p.X - 3, p.Y - 3, 6, 6));
            }
        }
Example #5
0
 public void setSkidkaFunc(fuzzyFuncs discount)
 {
     this.discount = discount;
     this.discount.fuzzyName = "Скидка льготным категориям (%)";
 }
Example #6
0
 public fuzzyFuncDlg(fuzzyFuncs func)
 {
     InitializeComponent();
     curFun = func;
 }
Example #7
0
 public void setCostFunc(fuzzyFuncs cost)
 {
     this.cost = cost;
     this.cost.fuzzyName = "Стоимость обслуживания (руб)";
 }
Example #8
0
 public void setCountFunc(fuzzyFuncs count)
 {
     this.count = count;
     this.count.fuzzyName = "Количество льготников (%)";
 }
Example #9
0
 public void setAppFunc(fuzzyFuncs app)
 {
     this.app = app;
     this.app.fuzzyName = "Обращения граждан (шт)";
 }
Example #10
0
 public fuzzyProfit3(fuzzyFuncs app,fuzzyFuncs cost,fuzzyFuncs discount,fuzzyFuncs count)
 {
     this.app = app;
     this.cost = cost;
     this.discount = discount;
     this.count = count;
     app.fuzzyName = "Обращения граждан (шт)";
     cost.fuzzyName = "Стоимость обслуживания (руб)";
     discount.fuzzyName = "Скидка льготным категориям (%)";
     count.fuzzyName = "Количество льготников (%)";
 }
Example #11
0
 public fuzzyProfit3()
 {
     app = new triangleFunc(200,300,800);
     cost = new trapFunc(250, 500, 800, 2000);
     discount = new trapFunc(3, 5, 7, 10);
     count = new triangleFunc(15, 20, 30);
     app.fuzzyName = "Обращения граждан (шт)";
     cost.fuzzyName = "Стоимость обслуживания (руб)";
     discount.fuzzyName = "Скидка льготным категориям (%)";
     count.fuzzyName = "Количество льготников (%)";
 }
Example #12
0
 public void removeTerm(fuzzyFuncs func)
 {
     funcs.Remove(func);
 }
Example #13
0
 public void addTerm(fuzzyFuncs func)
 {
     funcs.Add(func);
 }