Example #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Glut.glutInit();
            // Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_SINGLE); не забыть


            Gl.glClearColor(255, 255, 255, 1);

            //порт вывода, размеры AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            //матрицааааа
            Gl.glMatrixMode(Gl.GL_PROJECTION);

            Gl.glLoadIdentity();


            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            //объектно-видовая матрица
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();



            Слои.Items.Add("Главный слой", true);
        }
Example #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Gl.glClearColor(255, 255, 255, 1);

            Gl.glViewport(0, 0, AnT.Width, AnT.Height);


            Gl.glMatrixMode(Gl.GL_PROJECTION);

            Gl.glLoadIdentity();


            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);


            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();



            Слои.Items.Add("Главный слой", true);
        }
Example #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // устанавливаем цвет очистки окна
            Gl.glClearColor(255, 255, 255, 1);

            // устанавливаем порт вывода, основываясь на размерах элемента управления AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // устанавливаем проекционную матрицу
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очищаем его
            Gl.glLoadIdentity();


            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            // переходим к объектно-видовой матрице
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();


            // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
            Слои.Items.Add("Главный слой", true);
        }
Example #4
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Glut.glutInit();
            // Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_SINGLE); не забыть

            // устанавливаем цвет очистки окна
            Gl.glClearColor(255, 255, 255, 1);

            // устанавливаем порт вывода, основываясь на размерах элемента управления AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // устанавливаем проекционную матрицу
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очищаем ее
            Gl.glLoadIdentity();


            if ((float)AnT.Width <= (float)AnT.Height)
            {
                ScreenW = 500.0;
                ScreenH = 500.0 * (float)AnT.Height / (float)AnT.Width;

                Glu.gluOrtho2D(0.0, ScreenW, 0.0, ScreenH);
            }
            else
            {
                ScreenW = 500.0 * (float)AnT.Width / (float)AnT.Height;
                ScreenH = 500.0;

                Glu.gluOrtho2D(0.0, 500.0 * (float)AnT.Width / (float)AnT.Height, 0.0, 500.0);
            }

            devX = (float)ScreenW / (float)AnT.Width;
            devY = (float)ScreenH / (float)AnT.Height;

            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            // переходим к объектно-видовой матрице
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();
            comboBox1.SelectedIndex = 0;

            // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
            Слои.Items.Add("Главный слой", true);
        }
Example #5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация библиотеки GLUT
            Glut.glutInit();
            // инициализация режима окна
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

            // устанавливаем цвет очистки окна
            Gl.glClearColor(255, 255, 255, 1);

            // устанавливаем порт вывода, основываясь на размерах элемента управления AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // устанавливаем проекционную матрицу
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очищаем ее
            Gl.glLoadIdentity();

            Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            Gl.glEnable(Gl.GL_DEPTH_TEST);

            //Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            // переходим к объектно-видовой матрице
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();


            // добавлние элемента, отвечающего за управления главным слоем в объект LayersControl
            LayersControl.Items.Add("Главный слой", true);
        }
Example #6
0
        private void изФайлаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult reslt = MessageBox.Show("В данный момент проект уже начат, сохранить изменения перед закрытием проекта?", "Внимание!", MessageBoxButtons.YesNoCancel);


            switch (reslt)
            {
            case DialogResult.No:
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    if (System.IO.File.Exists(openFileDialog1.FileName))
                    {
                        Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);

                        if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                        {
                            MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                            return;
                        }



                        ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                        ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);


                        Слои.Items.Clear();


                        //текущий активный слой
                        ActiveLayer = 0;
                        //счетчик
                        LayersCount   = 1;
                        AllLayrsCount = 1;

                        Слои.Items.Add("Главный слой", true);
                    }
                }
                break;
            }

            //20.04.2018
            case DialogResult.Cancel:
            {
                //возвращаемся
                // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // =++=++=++=++= \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\
                return;
            }

            case DialogResult.Yes:
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    Bitmap ToSave = ProgrammDrawingEngine.GetFinalImage();


                    ToSave.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);



                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        if (System.IO.File.Exists(openFileDialog1.FileName))
                        {
                            Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);


                            if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                            {
                                MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                                return;
                            }


                            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                            ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);


                            Слои.Items.Clear();



                            //СКОПИРОВАТЬ СЧЕТЧИК СЛОЕВ\\!!!!!!
                            //текущий активный слой
                            ActiveLayer = 0;
                            //счетчик слоев
                            LayersCount = 1;
                            //счетчик всех создаваемых слоев для генерации имен
                            AllLayrsCount = 1;
                            //добавление элемента, отвечающего за управления главным слоем в объект LayersControl
                            Слои.Items.Add("Главный слой", true);
                        }
                    }
                    break;
                }
                else
                {
                    return;
                }
            }
            }
        }
Example #7
0
        private void читсыйПроектToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult reslt = MessageBox.Show("В данный момент проект уже начат, сохранить изменения перед закрытием проекта?", "Внимание!", MessageBoxButtons.YesNoCancel);


            switch (reslt)
            {
            case DialogResult.No:
            {
                ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


                Слои.Items.Clear();



                ActiveLayer = 0;

                LayersCount = 1;

                AllLayrsCount = 1;

                Слои.Items.Add("Главный слой", true);

                break;
            }

            case DialogResult.Cancel:
            {
                // возвращаемся
                return;
            }

            case DialogResult.Yes:
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    Bitmap ToSave = ProgrammDrawingEngine.GetFinalImage();


                    ToSave.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);


                    ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


                    Слои.Items.Clear();



                    ActiveLayer = 0;

                    LayersCount = 1;

                    AllLayrsCount = 1;

                    Слои.Items.Add("Главный слой", true);
                }
                else
                {
                    return;
                }

                break;
            }
            }
        }
Example #8
0
        // загрузка изображения в рабочую область программы
        private void изФайлаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // вызываем диалог подтверждения
            DialogResult reslt = MessageBox.Show("В данный момент проект уже начат, сохранить изменения перед закрытием проекта?", "Внимание!", MessageBoxButtons.YesNoCancel);

            // если отказ пользователя
            switch (reslt)
            {
            case DialogResult.No:
            {
                // просто создаем объект подгружая изображения
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    //проверяем существование слоя
                    if (System.IO.File.Exists(openFileDialog1.FileName))
                    {
                        // загружаем изображение в экземпляр класса Bitmap
                        Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);

                        // если размер изображения не корректен
                        if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                        {
                            // сообщаем пользователю об ошибке
                            MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                            // возвращаемся и функции
                            return;
                        }

                        // если размер был меньше области редактирования программы

                        // создаем новый экземпляр класса anEngine
                        ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);
                        // копируем изображение в нижний левый угол рабочей области
                        ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);

                        // очищаем информацию о добавляемых ранее слоях
                        Слои.Items.Clear();
                        // по новой инициализируем нулевой слой:

                        // текущий активный слой
                        ActiveLayer = 0;
                        //счетчик слоев
                        LayersCount = 1;
                        // счетчик всех создаваемых слоев для генерации имен
                        AllLayrsCount = 1;
                        // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
                        Слои.Items.Add("Главный слой", true);
                    }
                }
                break;
            }

            case DialogResult.Cancel:
            {
                // возвращаемся
                return;
            }



            case DialogResult.Yes:
            {
                // открываем окно сохранения файла, и если имя файла указано и DialogResult вернуло сигнал об успешном нажатии кнопки ОК
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    // получаем результирующее изображение слоя
                    Bitmap ToSave = ProgrammDrawingEngine.GetFinalImage();

                    // сохраняем используя имя файла указанное в диалоговом окне сохранения файла
                    ToSave.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);

                    //сохранили - начинаем новый проект


                    // просто создаем проект подгружая изображения
                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        // проверяем существование файла
                        if (System.IO.File.Exists(openFileDialog1.FileName))
                        {
                            // загружаем изображение в экземпляр класса Bitmap
                            Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);

                            // если размер изображения не корректен
                            if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                            {
                                // сообщаем пользователю об ошибке
                                MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                                // возвращаемся и функции
                                return;
                            }

                            //если размер области программирование не равен

                            // создаем новый экземпляр класса anEngine
                            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);
                            // копируем изображение в нижний левый угол рабочей области
                            ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);

                            // очищаем информацию о добавляемых ранее слоях
                            Слои.Items.Clear();
                            // по новой инициализируем нулевой слой:

                            // текущий активный слой
                            ActiveLayer = 0;
                            // счетчик слоев
                            LayersCount = 1;
                            // счетчик всех создаваемых слоев для генерации имен
                            AllLayrsCount = 1;
                            // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
                            Слои.Items.Add("Главный слой", true);
                        }
                    }
                    break;
                }
                else
                {
                    return;
                }
            }
            }
        }
Example #9
0
        // функция создания нового проекта для рисования
        private void читсыйПроектToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // вызываем диалог подтверждения
            DialogResult reslt = MessageBox.Show("В данный момент проект уже начат, сохранить изменения перед закрытием проекта?", "Внимание!", MessageBoxButtons.YesNoCancel);

            //если отказ пользователя
            switch (reslt)
            {
            case DialogResult.No:
            {
                // просто создаем чистый проект
                //StoryFliping
                ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                // очищаем информацию о добавляемых ранее слоях
                Слои.Items.Clear();
                // по новой инициализируем нулевой слой:
                // текущий активный слой
                ActiveLayer = 0;
                // счетчик слоев
                LayersCount = 1;
                // счетчик всех создаваемых слоев для генерации имен
                AllLayrsCount = 1;
                // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
                Слои.Items.Add("Главный слой", true);
                // Максимальное разрешение

                break;
            }

            case DialogResult.Cancel:
            {
                // возвращаемся
                return;
            }

            case DialogResult.Yes:
            {
                // открываем окно сохранения файла, и если имя файла указано и DialogResult вернуло сигнал об успешном нажатии кнопки ОК
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    // получаем результирующее изображение слоя
                    Bitmap ToSave = ProgrammDrawingEngine.GetFinalImage();

                    // сохраняем используя имя файла указанное в диалоговом окне сохранения файла
                    ToSave.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);

                    // сохранили - начинаем новый проект:

                    // создаем новый объект "движка" программы
                    ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                    // очищаем информацию о добавляемых ранее слоях
                    Слои.Items.Clear();
                    // по новой инициализируем нулевой слой:

                    // текущий активный слой
                    ActiveLayer = 0;
                    //счетчик слоев
                    LayersCount = 1;
                    // счетчик всех создаваемых слоев для генерации имен
                    AllLayrsCount = 1;
                    // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
                    Слои.Items.Add("Главный слой", true);
                }
                else
                {
                    // если сохранение не завершилось нормально (скорее всего пользователь закрыл окно сохранения файла
                    // возвращаемся в проект
                    return;
                }

                break;
            }
            }
        }
Example #10
0
        private void изФайлаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult reslt = MessageBox.Show("В данный момент проект уже начат, сохранить изменения перед закрытием проекта?", "Внимание!", MessageBoxButtons.YesNoCancel);


            switch (reslt)
            {
            case DialogResult.No:
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    if (System.IO.File.Exists(openFileDialog1.FileName))
                    {
                        Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);


                        if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                        {
                            MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                            return;
                        }



                        ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                        ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);


                        Слои.Items.Clear();



                        ActiveLayer = 0;

                        LayersCount = 1;

                        AllLayrsCount = 1;

                        Слои.Items.Add("Главный слой", true);
                    }
                }
                break;
            }

            case DialogResult.Cancel:
            {
                return;
            }

            case DialogResult.Yes:
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    Bitmap ToSave = ProgrammDrawingEngine.GetFinalImage();

                    ToSave.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);


                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        if (System.IO.File.Exists(openFileDialog1.FileName))
                        {
                            Bitmap ToLoad = new Bitmap(openFileDialog1.FileName);


                            if (ToLoad.Width > AnT.Width || ToLoad.Height > AnT.Height)
                            {
                                MessageBox.Show("Извините, но размер изображения превышает размеры области рисования", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                                return;
                            }


                            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

                            ProgrammDrawingEngine.SetImageToMainLayer(ToLoad);

                            Слои.Items.Clear();

                            ActiveLayer = 0;

                            LayersCount = 1;

                            AllLayrsCount = 1;

                            Слои.Items.Add("Главный слой", true);
                        }
                    }
                    break;
                }
                else
                {
                    return;
                }


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
            }
            }
        }