Ejemplo n.º 1
0
        public GraphModel()
        {
            mainModel = new MainModel();

            bmm = new Bitmap(3000, 900);             //размерность полотна
            g   = Graphics.FromImage(bmm);           // g - графический компонент

            penBlack5 = new Pen(Color.Black, 5);     // перо черного цвета, размер = 5
            penBlack1 = new Pen(Color.Black, 1);     // перо черного цвета, размер = 1

            calibryFont = new FontFamily("Calibri"); //выбрали шрифт Calibri
            font20      = new Font(calibryFont, 20); // размер шрифта 20
            font15      = new Font(calibryFont, 15); // размер шрифта 15
            font12      = new Font(calibryFont, 12); // размер шрифта 12

            brush   = new SolidBrush(Color.Black);   //кисть черного цвета                                                                          //PictureBox picture = new PictureBox();
            Picture = new PictureBox()
            {
                Height = 1000, Width = 3000, Image = bmm
            };

            var map_x1 = new float[Max];
            var map_x2 = new float[Max];
            var map_y1 = new float[Max];
            var map_y2 = new float[Max];

            map_x1[1] = 135; map_x2[1] = 235;//начальные положения
            map_y1[1] = 550; map_y2[1] = 550;

            SortInit();

            bool[] mass_0_1 = GetTransformerOrLines();

            byte[] branches = GetCountOfBranches();

            var alfa_t = GetAngleOfRotation(branches);

            DrawingFirstNode(ref g, map_y1[1]);

            for (byte i = 0; i <= mainModel.a; i++)
            {
                for (byte j = 0; j <= mainModel.a; j++)
                {
                    float cos_k = (float)Math.Cos((alfa_t[j] * Math.PI) / 180);
                    float sin_k = (float)Math.Sin((alfa_t[j] * Math.PI) / 180);
                    if (mainModel.k[i] == mainModel.n[j] & mass_0_1[j] == true & branches[j] > 0)//рисуем линию
                    {
                        map_x1[j] = map_x2[i];
                        map_x2[j] = map_x1[j] + cos_k * LengthLine;
                        map_y1[j] = map_y2[i];
                        map_y2[j] = map_y1[j] + sin_k * LengthLine;
                        DrawingLine(ref g, map_x1[j], map_x2[j], map_y1[j], map_y2[j], alfa_t[j], j);
                    }
                    else if (mainModel.k[i] == mainModel.n[j] & mass_0_1[j] == false) //рисуем трансформатор
                    {
                        map_x1[j] = map_x2[i];
                        map_x2[j] = map_x1[j] + cos_k * (Value / 4);
                        map_y1[j] = map_y2[i];
                        map_y2[j] = map_y1[j] + sin_k * (Value / 4);

                        DrawingTransformer(ref g, map_x1[j], map_x2[j], map_y1[j], map_y2[j], alfa_t[j], j);

                        i++;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public TableTwoModel()
        {
            mainModel = new MainModel();

            Nodes = GetNodes();
        }