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); }
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); }
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); }
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); }
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); }
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; } } } }
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; } } }
// загрузка изображения в рабочую область программы 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; } } } }
// функция создания нового проекта для рисования 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; } } }
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; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\ } } }