예제 #1
0
        public void DrawGraph()
        {
            bufferedGraphics.Graphics.Clear(panelGraph.BackColor);

            GraphicOnFrom.PaintGrid(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height);
            if (!isInit)
            {
                bufferedGraphics.Render(); return;
            }

            GraphicOnFrom.DrawGaussMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height, Color.DarkGreen, 50, 15, 0, 100, BoundaryTypeEnum.MIDDLE);
            GraphicOnFrom.DrawGaussMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height, Color.Red, 50, 15, 0, 100, BoundaryTypeEnum.MIDDLE, (QuantifierEnum)listBoxQuant.SelectedIndex);

            bufferedGraphics.Render();
        }
예제 #2
0
        private void DrawGraphs()
        {
            bufferedGraphics.Graphics.Clear(panelGraph.BackColor);

            GraphicOnFrom.PaintGrid(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height);
            if ((!isInit) || (FuzzyList == null))
            {
                bufferedGraphics.Render(); return;
            }
            GraphicOnFrom.DrawBottomScale(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height, double.Parse(textBoxBottom.Text), double.Parse(textBoxTop.Text));

            int i = 0;

            foreach (var fv in FuzzyList)
            {
                switch (fv.Type)
                {
                case TypeMFuncEnum.GAUSS:
                    GraphicOnFrom.DrawGaussMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                              fv.ColorLine,
                                              fv.GaussParam.C,
                                              fv.GaussParam.Sigma,
                                              prototypeSymtom.ReasoningBottom,
                                              prototypeSymtom.ReasoningTop,
                                              fv.Bound);

                    GraphicOnFrom.DrawGaussPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                  fv.Name,
                                                  fv.ColorLine,
                                                  fv.GaussParam.C,
                                                  fv.GaussParam.Sigma,
                                                  prototypeSymtom.ReasoningBottom,
                                                  prototypeSymtom.ReasoningTop,
                                                  fv.Bound, i);
                    break;

                case TypeMFuncEnum.TRIANGULARE:
                    GraphicOnFrom.DrawTrianglMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                fv.ColorLine,
                                                fv.TrianglParam.A,
                                                fv.TrianglParam.B,
                                                fv.TrianglParam.C,
                                                prototypeSymtom.ReasoningBottom,
                                                prototypeSymtom.ReasoningTop,
                                                fv.Bound);

                    GraphicOnFrom.DrawTrianglPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                    fv.Name,
                                                    fv.ColorLine,
                                                    fv.TrianglParam.A,
                                                    fv.TrianglParam.B,
                                                    fv.TrianglParam.C,
                                                    prototypeSymtom.ReasoningBottom,
                                                    prototypeSymtom.ReasoningTop,
                                                    fv.Bound, false, i);
                    break;

                case TypeMFuncEnum.TRAPEZOIDAL:
                    GraphicOnFrom.DrawTrapezMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                               fv.ColorLine,
                                               fv.TrapezParam.A,
                                               fv.TrapezParam.B,
                                               fv.TrapezParam.C,
                                               fv.TrapezParam.D,
                                               prototypeSymtom.ReasoningBottom,
                                               prototypeSymtom.ReasoningTop,
                                               fv.Bound);

                    GraphicOnFrom.DrawTrapezoidalPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                        fv.Name,
                                                        fv.ColorLine,
                                                        fv.TrapezParam.A,
                                                        fv.TrapezParam.B,
                                                        fv.TrapezParam.C,
                                                        fv.TrapezParam.D,
                                                        prototypeSymtom.ReasoningBottom,
                                                        prototypeSymtom.ReasoningTop,
                                                        fv.Bound, i);
                    break;

                default:
                    //MessageBox.Show("I don`t know this variable type", "Variable type error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                }
                i++;
            }
            bufferedGraphics.Render();
        }
예제 #3
0
        private void DrawGraph()
        {
            bufferedGraphics.Graphics.Clear(panelGraph.BackColor);

            GraphicOnFrom.PaintGrid(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height);
            GraphicOnFrom.DrawBottomScale(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height, parentSymptom.ReasoningBottom, parentSymptom.ReasoningTop);

            if (!isInit)
            {
                return;
            }

            switch ((TypeMFuncEnum)comboBoxType.SelectedIndex)
            {
            case TypeMFuncEnum.GAUSS:
                GraphicOnFrom.DrawGaussMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                          buttonColor.BackColor,
                                          Convert.ToDouble(textBoxGC.Text),
                                          Convert.ToDouble(textBoxSigma.Text),
                                          parentSymptom.ReasoningBottom,
                                          parentSymptom.ReasoningTop,
                                          (BoundaryTypeEnum)comboBoxBound.SelectedIndex);

                GraphicOnFrom.DrawGaussPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                              textBoxName.Text,
                                              buttonColor.BackColor,
                                              Convert.ToDouble(textBoxGC.Text),
                                              Convert.ToDouble(textBoxSigma.Text),
                                              parentSymptom.ReasoningBottom,
                                              parentSymptom.ReasoningTop,
                                              (BoundaryTypeEnum)comboBoxBound.SelectedIndex);
                break;

            case TypeMFuncEnum.TRIANGULARE:
                GraphicOnFrom.DrawTrianglMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                            buttonColor.BackColor,
                                            Convert.ToDouble(textBoxTrianglA.Text),
                                            Convert.ToDouble(textBoxTrianglB.Text),
                                            Convert.ToDouble(textBoxTrianglC.Text),
                                            parentSymptom.ReasoningBottom,
                                            parentSymptom.ReasoningTop,
                                            (BoundaryTypeEnum)comboBoxBound.SelectedIndex);

                GraphicOnFrom.DrawTrianglPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                textBoxName.Text,
                                                buttonColor.BackColor,
                                                Convert.ToDouble(textBoxTrianglA.Text),
                                                Convert.ToDouble(textBoxTrianglB.Text),
                                                Convert.ToDouble(textBoxTrianglC.Text),
                                                parentSymptom.ReasoningBottom,
                                                parentSymptom.ReasoningTop,
                                                (BoundaryTypeEnum)comboBoxBound.SelectedIndex);
                break;

            case TypeMFuncEnum.TRAPEZOIDAL:
                GraphicOnFrom.DrawTrapezMF(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                           buttonColor.BackColor,
                                           Convert.ToDouble(textBoxTrapA.Text),
                                           Convert.ToDouble(textBoxTrapB.Text),
                                           Convert.ToDouble(textBoxTrapC.Text),
                                           Convert.ToDouble(textBoxTrapD.Text),
                                           parentSymptom.ReasoningBottom,
                                           parentSymptom.ReasoningTop,
                                           (BoundaryTypeEnum)comboBoxBound.SelectedIndex);

                GraphicOnFrom.DrawTrapezoidalPoints(bufferedGraphics.Graphics, panelGraph.Width, panelGraph.Height,
                                                    textBoxName.Text,
                                                    buttonColor.BackColor,
                                                    Convert.ToDouble(textBoxTrapA.Text),
                                                    Convert.ToDouble(textBoxTrapB.Text),
                                                    Convert.ToDouble(textBoxTrapC.Text),
                                                    Convert.ToDouble(textBoxTrapD.Text),
                                                    parentSymptom.ReasoningBottom,
                                                    parentSymptom.ReasoningTop,
                                                    (BoundaryTypeEnum)comboBoxBound.SelectedIndex);
                break;

            default:
                //MessageBox.Show("I don`t know this variable type", "Variable type error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;
            }

            bufferedGraphics.Render();
        }