Разработка графического редактора - Программирование, компьютеры и кибернетика курсовая работа
Разработка программы для создания, просмотра и сохранения изображений. Реализация функции рисования различных фигур с заливкой и без заливки, функции очистки рабочего пространства и отмены последних действий. Обоснование выбранных методов и алгоритмов.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Дисциплина: Конструирование программ и языки программирования
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовому проекту
на тему РАЗРАБОТКА ГРАФИЧЕСКОГО РЕДАКТОРА
3.1 Класс CShape - базовый абстрактный класс фигуры
3.2 Класс контейнер shapes - класс контейнер для фигур
3.3 Класс CLine : public CShape. Класс линии
3.4 Класс CRect : public CLine. Класс прямоугольника
3.5 Класс CEllipse : public CLine. Класс эллипса
3.6 Класс CTriangle : public CLine. Класс треугольника
3.7 Класс CRound : public CLine. Класс круга
3.8 Класс CBezier : public CShape. Класс линии Безье
2. Использование объекта Graphics для рисования линий и фигур, отображения текста или изображения и управления ими.
После создания объекта Graphics его можно использовать для рисования линий и фигур, отображения текста или изображения и управления ими. Ниже представлены основные объекты, используемые с объектом Graphics.
1. Класс Pen -- служит для рисования линий, контуров и отрисовки других геометрических объектов.
2. Класс Brush -- служит для заливки областей, например фигур, изображений или текста.
3. Класс Font -- содержит описание фигур, которые должны использоваться при отображении текста.
4. Структура Color -- содержит различные цвета.
3.1 Класс CShape - базовый абстрактный класс фигуры
Указатель на массив координат по горизонтали
Указатель на массив координат по вертикали
virtual Draw(PictureBox^ picbox) = 0
Чисто виртуальный метод прорисовки фигуры
virtual SetPoint(unsigned int i, float X, float Y)
Виртуальный метод добавления точки в массивы координат
Установка свойства заполнения фигуры
Чисто виртуальный метод выделения памяти для фигуры
3.2 Класс контейнер shapes - класс контейнер для фигур
Таблица 3.3 Поля класса-контейнера shapes
Указатель на следующий элемент в списке
Указатель на предыдущий элемент в списке
Таблица 3.4 Метода класса-контейнера shapes
Переход на следующий элемент списка
Переход на предыдущий элемент списка
3.3 Класс CLine : public CShape. Класс линии
3.4 Класс CRect : public CLine. Класс прямоугольника
Выделения памяти для прямоугольника
3.5 Класс CEllipse : public CLine. Класс эллипса
3.6 Класс CTriangle : public CLine. Класс треугольника
Таблица 3.8 Методы класса CTriangle
3.7 Класс CRound : public CLine. Класс круга
3.8 Класс CBezier : public CShape. Класс линии Безье
SetPoint(unsigned int i, float X, float Y)
Переопределённый метод добавления точки в массивы координат
3. Присваивание указателя CRect указателю CShape
4. Установка флага заливки прямоугольника.
5. Установка цвета рамки и заливки прямоугольника.
4.2 Метод System::Void pictureBox1_MouseDown() - Событие на нажатие кнопки
2. Установка первой координаты фигуры
4.3 Метод System::Void pictureBox1_MouseDown() - Событие на нажатие кнопки
2. Установка следующей координаты фигуры
3. Выделение памяти под новый объект фигуры
4.4 Метод System::Void Form1_Load() - Загрузка формы
2. Выделение памяти для линии(по умолчанию)
5. Создаём Bitmap, на котором будут производиться все действия
4.5 Метод System::Void Form1_FormClosed() - Закрытие формы
Рисунок 4.1 Блок-схема алгоритма при закрытии формы
4.6 Метод shapes * shapes::AddS(CShape *s) - Добавление элемента в список
Рисунок 4.2 Блок-схема алгоритма добавления элемента в список
изображение сохранение заливка пространство
4.7 Метод void CTriangle::Draw(PictureBox^ picbox) - Прорисовка треугольника
Рисунок 4.3 Блок-схема алгоритма рисования треугольника
4.8 Метод System::Void undoToolStripMenuItem_Click() Отмена последнего действия
Рисунок 4.4 Блок-схема алгоритма отмены последних действий
1. Харви М. Дейтел, Пол Дж. Дейтел - Как программировать на C++ - 2008
2. Петцольд - Программирование Для Microsoft Windows На С#. В 2-х Томах. Том 1 - 2002
3. Петцольд - Программирование Для Microsoft Windows На С#. В 2-х Томах. Том 2 - 2002
4. Информационный портал: http://msdn.microsoft.com
5. Информационный портал: http://www.cyberguru.ru
void shapes::Redraw(System::Windows::Forms::PictureBox ^picbox)
void CShape::SetPoint(unsigned int i, float X, float Y)
void CShape::SetColor(int i, Color col)
void CLine::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
g->DrawLine(pen1,x[0],y[0],x[1],y[1]);
L->SetColor(0,Color::FromArgb(color1));
L->SetColor(1,Color::FromArgb(color2));
void CRect::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
SolidBrush^ brush1 = gcnew SolidBrush(Color::FromArgb(color2));
if (x[1]-x[0]>=0 && y[1]-y[0]>=0) g->FillRectangle(brush1,x[0],y[0],x[1]-x[0],y[1]-y[0]);
if (x[1]-x[0]<0 && y[1]-y[0]>=0) g->FillRectangle(brush1,x[1],y[0],x[0]-x[1],y[1]-y[0]);
if (x[1]-x[0]>=0 && y[1]-y[0]<0) g->FillRectangle(brush1,x[0],y[1],x[1]-x[0],y[0]-y[1]);
if (x[1]-x[0]<0 && y[1]-y[0]<0) g->FillRectangle(brush1,x[1],y[1],x[0]-x[1],y[0]-y[1]);
if (x[1]-x[0]>=0 && y[1]-y[0]>=0) g->DrawRectangle(pen1,x[0],y[0],x[1]-x[0],y[1]-y[0]);
if (x[1]-x[0]<0 && y[1]-y[0]>=0) g->DrawRectangle(pen1,x[1],y[0],x[0]-x[1],y[1]-y[0]);
if (x[1]-x[0]>=0 && y[1]-y[0]<0) g->DrawRectangle(pen1,x[0],y[1],x[1]-x[0],y[0]-y[1]);
if (x[1]-x[0]<0 && y[1]-y[0]<0) g->DrawRectangle(pen1,x[1],y[1],x[0]-x[1],y[0]-y[1]);
R->SetColor(0,Color::FromArgb(color1));
R->SetColor(1,Color::FromArgb(color2));
void CEllipse::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
SolidBrush^ brush1 = gcnew SolidBrush(Color::FromArgb(color2));
if (filled) g->FillEllipse(brush1,x[0],y[0],x[1]-x[0],y[1]-y[0]);
g->DrawEllipse(pen1,x[0],y[0],x[1]-x[0],y[1]-y[0]);
E->SetColor(0,Color::FromArgb(color1));
E->SetColor(1,Color::FromArgb(color2));
void CTriangle::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
SolidBrush^ brush1 = gcnew SolidBrush(Color::FromArgb(color2));
GraphicsPath^ gp = gcnew GraphicsPath();
gp->AddLine(x[0],y[1],x[0]+(x[1]-x[0])/2,y[0]);
gp->AddLine(x[0]+(x[1]-x[0])/2,y[0],x[1],y[1]);
if (filled) g->FillRegion(brush1,reg);
g->DrawLine(pen1,x[0],y[1],x[0]+(x[1]-x[0])/2,y[0]);
g->DrawLine(pen1,x[0]+(x[1]-x[0])/2,y[0],x[1],y[1]);
g->DrawLine(pen1,x[1],y[1],x[0],y[1]);
T->SetColor(0,Color::FromArgb(color1));
T->SetColor(1,Color::FromArgb(color2));
void CRound::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
SolidBrush^ brush1 = gcnew SolidBrush(Color::FromArgb(color2));
float R = sqrt((x[1]-x[0])*(x[1]-x[0])+(y[1]-y[0])*(y[1]-y[0]));
if(filled) g->FillEllipse(brush1,x[0]-R,y[0]-R,2*R,2*R);
g->DrawEllipse(pen1,x[0]-R,y[0]-R,2*R,2*R);
Rn->SetColor(0,Color::FromArgb(color1));
Rn->SetColor(1,Color::FromArgb(color2));
void CBezier::SetPoint(unsigned int i, float X, float Y)
void CBezier::Draw(PictureBox^ picbox)
Graphics^ g = Graphics::FromImage(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FromArgb(color1));
g->DrawBezier(pen1,x[0],y[0],x[1],y[1],x[2],y[2],x[3],y[3]);
B->SetColor(0,Color::FromArgb(color1));
B->SetColor(1,Color::FromArgb(color2));
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
public ref class Form1 : public System::Windows::Forms::Form
//TODO: Add the constructor code here
/// Clean up any resources being used.
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::Button^ bLine;
private: System::Windows::Forms::Button^ bRect;
private: System::Windows::Forms::Button^ bEllipse;
private: System::Windows::Forms::Button^ bTriangle;
private: System::Windows::Forms::Button^ bRound;
private: System::Windows::Forms::Button^ bColor1;
private: System::Windows::Forms::Button^ bColor2;
private: System::Windows::Forms::ColorDialog^ colorDialog1;
private: System::Windows::Forms::Button^ bBezier;
private: System::Windows::Forms::CheckBox^ checkBox1;
private: System::Windows::Forms::MenuStrip^ menuStrip1;
private: System::Windows::Forms::StatusStrip^ statusStrip1;
private: System: Windows:: Forms:: ToolStripStatusLabel^ toolStripStatusLabel1;
private: System:: Windows:: Forms:: ToolStripMenuItem^ toolStripMenuItem1;
private: System:: Windows:: Forms:: ToolStripMenuItem^ openToolStripMenuItem;
private: System:: Windows:: Forms:: ToolStripMenuItem^ saveToolStripMenuItem;
private: System:: Windows:: Forms:: ToolStripMenuItem^ exitToolStripMenuItem;
private: System:: Windows:: Forms:: ToolStripMenuItem^ toolStripMenuItem2;
private: System:: Windows:: Forms:: ToolStripMenuItem^ clearToolStripMenuItem;
private: System::Windows::Forms::OpenFileDialog^ openFileDialog1;
private: System::Windows::Forms::SaveFileDialog^ saveFileDialog1;
private: System::Windows::Forms::ToolStripMenuItem^ undoToolStripMenuItem;
private: System::ComponentModel::IContainer^ components;
#pragma region Windows Form Designer generated code
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->bLine = (gcnew System::Windows::Forms::Button());
this->bRect = (gcnew System::Windows::Forms::Button());
this->bEllipse = (gcnew System::Windows::Forms::Button());
this->bTriangle = (gcnew System::Windows::Forms::Button());
this->colorDialog1 = (gcnew System::Windows::Forms::ColorDialog());
this->bRound = (gcnew System::Windows::Forms::Button());
this->bColor1 = (gcnew System::Windows::Forms::Button());
this->bColor2 = (gcnew System::Windows::Forms::Button());
this->bBezier = (gcnew System::Windows::Forms::Button());
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->toolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->openToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStripMenuItem2 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->clearToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->undoToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->statusStrip1 = (gcnew System::Windows::Forms::StatusStrip());
this->toolStripStatusLabel1 = (gcnew System::Windows::Forms::ToolStripStatusLabel());
this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
(cli::safe_cast(this->pictureBox1))->BeginInit();
this->statusStrip1->SuspendLayout();
this->pictureBox1->BackColor = System::Drawing::SystemColors::Window;
this->pictureBox1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle;
this->pictureBox1->Cursor = System::Windows::Forms::Cursors::Cross;
this->pictureBox1->Location = System::Drawing::Point(12, 60);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(803, 603);
this->pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::AutoSize;
this->pictureBox1->TabStop = false;
this->pictureBox1->MouseMove + = gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseMove);
this->pictureBox1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseDown);
this->pictureBox1->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseUp);
this->bLine->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bLine.BackgroundImage")));
this->bLine->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bLine->Location = System::Drawing::Point(12, 31);
this->bLine->Size = System::Drawing::Size(23, 23);
this->bLine->UseVisualStyleBackColor = true;
this->bLine->Click += gcnew System::EventHandler(this, &Form1::bLine_Click);
this->bRect->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bRect.BackgroundImage")));
this->bRect->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bRect->Location = System::Drawing::Point(41, 31);
this->bRect->Size = System::Drawing::Size(23, 23);
this->bRect->UseVisualStyleBackColor = true;
this->bRect->Click += gcnew System::EventHandler(this, &Form1::bRect_Click);
this->bEllipse->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bEllipse.BackgroundImage")));
this->bEllipse->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bEllipse->Location = System::Drawing::Point(70, 31);
this->bEllipse->Name = L"bEllipse";
this->bEllipse->Size = System::Drawing::Size(23, 23);
this->bEllipse->UseVisualStyleBackColor = true;
this->bEllipse->Click += gcnew System::EventHandler(this, &Form1::bEllipse_Click);
this->bTriangle->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bTriangle.BackgroundImage")));
this->bTriangle->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bTriangle->Location = System::Drawing::Point(128, 31);
this->bTriangle->Name = L"bTriangle";
this->bTriangle->Size = System::Drawing::Size(23, 23);
this->bTriangle->UseVisualStyleBackColor = true;
this->bTriangle->Click += gcnew System::EventHandler(this, &Form1::bTriangle_Click);
this->bRound->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bRound.BackgroundImage")));
this->bRound->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bRound->Location = System::Drawing::Point(99, 31);
this->bRound->Size = System::Drawing::Size(23, 23);
this->bRound->UseVisualStyleBackColor = true;
this->bRound->Click += gcnew System::EventHandler(this, &Form1::bRound_Click);
this->bColor1->BackColor = System::Drawing::Color::Black;
this->bColor1->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bColor1->Location = System::Drawing::Point(248, 31);
this->bColor1->Size = System::Drawing::Size(23, 23);
this->bColor1->UseVisualStyleBackColor = false;
this->bColor1->Click += gcnew System::EventHandler(this, &Form1::bColor1_Click);
this->bColor2->BackColor = System::Drawing::Color::White;
this->bColor2->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bColor2->Location = System::Drawing::Point(277, 31);
this->bColor2->Size = System::Drawing::Size(23, 23);
this->bColor2->UseVisualStyleBackColor = false;
this->bColor2->Click += gcnew System::EventHandler(this, &Form1::bColor2_Click);
this->bBezier->BackgroundImage = (cli::safe_cast(resources->GetObject(L"bBezier.BackgroundImage")));
this->bBezier->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
this->bBezier->Location = System::Drawing::Point(157, 31);
this->bBezier->Size = System::Drawing::Size(23, 23);
this->bBezier->UseVisualStyleBackColor = true;
this->bBezier->Click += gcnew System::EventHandler(this, &Form1::bBezier_Click);
this->checkBox1->Location = System::Drawing::Point(306, 33);
this->checkBox1->Name = L"checkBox1";
this->checkBox1->Size = System::Drawing::Size(104, 21);
this->checkBox1->Text = L"С заливкой";
this->checkBox1->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBox1_CheckedChanged);
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->toolStripMenuItem1,
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(823, 28);
this->menuStrip1->Text = L"menuStrip1";
this->toolStripMenuItem1->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->openToolStripMenuItem,
this->saveToolStripMenuItem, this->exitToolStripMenuItem});
this->toolStripMenuItem1->Name = L"toolStripMenuItem1";
this->toolStripMenuItem1->Size = System::Drawing::Size(57, 24);
this->toolStripMenuItem1->Text = L"Файл";
this->openToolStripMenuItem->Name = L"openToolStripMenuItem";
this->openToolStripMenuItem->ShortcutKeys = static_cast((System::Windows::Forms::Keys::Control | System::Windows::Forms::Keys::O));
this->openToolStripMenuItem->Size = System::Drawing::Size(202, 24);
this->openToolStripMenuItem->Text = L"Открыть";
this->openToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::openToolStripMenuItem_Click);
this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
this->saveToolStripMenuItem->ShortcutKeys = static_cast((System::Windows::Forms::Keys::Control | System::Windows::Forms::Keys::S));
this->saveToolStripMenuItem->Size = System::Drawing::Size(202, 24);
this->saveToolStripMenuItem->Text = L"Сохранить";
this->saveToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::saveToolStripMenuItem_Click);
this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem";
this->exitToolStripMenuItem->ShortcutKeys = static_cast((System::Windows::Forms::Keys::Alt | System::Windows::Forms::Keys::F4));
this->exitToolStripMenuItem->Size = System::Drawing::Size(202, 24);
this->exitToolStripMenuItem->Text = L"Выход";
this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::exitToolStripMenuItem_Click);
this->toolStripMenuItem2->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->clearToolStripMenuItem,
this->toolStripMenuItem2->Name = L"toolStripMenuItem2";
this->toolStripMenuItem2->Size = System::Drawing::Size(72, 24);
this->toolStripMenuItem2->Text = L"Правка";
this->clearToolStripMenuItem->Name = L"clearToolStripMenuItem";
this->clearToolStripMenuItem->ShortcutKeys = static_cast((System::Windows::Forms::Keys::Control | System::Windows::Forms::Keys::R));
this->clearToolStripMenuItem->Size = System::Drawing::Size(197, 24);
this->clearToolStripMenuItem->Text = L"Очистить";
this->clearToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::clearToolStripMenuItem_Click);
this->undoToolStripMenuItem->Name = L"undoToolStripMenuItem";
this->undoToolStripMenuItem->ShortcutKeys = static_cast((System::Windows::Forms::Keys::Control | System::Windows::Forms::Keys::Z));
this->undoToolStripMenuItem->Size = System::Drawing::Size(197, 24);
this->undoToolStripMenuItem->Text = L"Отменить";
this->undoToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::undoToolStripMenuItem_Click);
this->statusStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->toolStripStatusLabel1});
this->statusStrip1->Location = System::Drawing::Point(0, 670);
this->statusStrip1->Name = L"statusStrip1";
this->statusStrip1->Size = System::Drawing::Size(823, 25);
this->statusStrip1->Text = L"statusStrip1";
this->toolStripStatusLabel1->Name = L"toolStripStatusLabel1";
this->toolStripStatusLabel1->Size = System::Drawing::Size(38, 20);
this->toolStripStatusLabel1->Text = L"(0;0)";
this->openFileDialog1->FileName = L"openFileDialog1";
this->openFileDialog1->Filter = L"BMP|*.bmp|JPG|*.jpg;*.jpeg|GIF|*.gif|PNG|*.png|Any File|*.*";
this->saveFileDialog1->Filter = L"BMP|*.bmp|JPG|*.jpg|GIF|*.gif|PNG|*.png";
this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(823, 695);
this->Controls->Add(this->statusStrip1);
this->Controls->Add(this->checkBox1);
this->Controls->Add(this->bBezier);
this->Controls->Add(this->bColor2);
this->Controls->Add(this->bColor1);
this->Controls->Add(this->bTriangle);
this->Controls->Add(this->bEllipse);
this->Controls->Add(this->pictureBox1);
this->Controls->Add(this->menuStrip1);
this->MainMenuStrip = this->menuStrip1;
this->Text = L"Графический редактор";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->FormClosed += gcnew System::Windows::Forms::FormClosedEventHandler(this, &Form1::Form1_FormClosed);
(cli::safe_cast(this->pictureBox1))->EndInit();
this->menuStrip1->ResumeLayout(false);
this->statusStrip1->ResumeLayout(false);
this->statusStrip1->PerformLayout();
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
S1->SetColor(0,Form1::bColor1->BackColor);
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Size.Width,pictureBox1->Size.Height);
private: System::Void pictureBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
private: System::Void pictureBox1_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
private: System::Void pictureBox1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Form1::toolStripStatusLabel1->Text = "("+e->X.ToString()+";"+e->Y.ToString()+")";
private: System::Void bLine_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetColor(0,Form1::bColor1->BackColor);
private: System::Void bRect_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetFilled(Form1::checkBox1->Checked);
S1->SetColor(0,Form1::bColor1->BackColor);
S1->SetColor(1,Form1::bColor2->BackColor);
private: System::Void bEllipse_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetFilled(Form1::checkBox1->Checked);
S1->SetColor(0,Form1::bColor1->BackColor);
S1->SetColor(1,Form1::bColor2->BackColor);
private: System::Void bTriangle_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetFilled(Form1::checkBox1->Checked);
S1->SetColor(0,Form1::bColor1->BackColor);
S1->SetColor(1,Form1::bColor2->BackColor);
private: System::Void bRound_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetColor(0,bColor1->BackColor);
S1->SetColor(1,bColor2->BackColor);
private: System::Void bColor1_Click(System::Object^ sender, System::EventArgs^ e) {
bColor1->BackColor = colorDialog1->Color;
S1->SetColor(0,bColor1->BackColor);
private: System::Void bColor2_Click(System::Object^ sender, System::EventArgs^ e) {
bColor2->BackColor = colorDialog1->Color;
S1->SetColor(1,bColor2->BackColor);
private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
private: System::Void bBezier_Click(System::Object^ sender, System::EventArgs^ e) {
S1->SetColor(0,bColor1->BackColor);
private: System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
Image^ img1 = Image::FromFile(openFileDialog1->FileName);
Bitmap^ bmp = gcnew Bitmap(img1, pictureBox1->Width, pictureBox1->Height);
Graphics^ g = Graphics::FromImage(pictureBox1->Image);
private: System::Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if(saveFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)
String^ filename = saveFileDialog1->FileName;
String^ ext = filename->Remove(0,filename->Length - 3);
case 'b': pictureBox1->Image->Save(filename, System::Drawing::Imaging::ImageFormat::Bmp);
case 'j': pictureBox1->Image->Save(filename, System::Drawing::Imaging::ImageFormat::Jpeg);
case 'g': pictureBox1->Image->Save(filename, System::Drawing::Imaging::ImageFormat::Gif);
case 'p': pictureBox1->Image->Save(filename, System::Drawing::Imaging::ImageFormat::Png);
private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
private: System::Void clearToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Size.Width-2,pictureBox1->Size.Height-2);
Graphics^ g = Graphics::FromImage(pictureBox1->Image);
private: System::Void undoToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Size.Width-2,pictureBox1->Size.Height-2);
Graphics^ g = Graphics::FromImage(pictureBox1->Image);
private: System::Void Form1_FormClosed(System::Object^ sender, System::Windows::Forms::FormClosedEventArgs^ e) {
Приложение Б. Скриншоты с результатами работы
При включении программы выводится на экран основное окно для работы с приложением.
При нажатии пункта меню "Открыть Ctrl+O" появляется диалоговое окно, в котором вы можете выбрать изображение.
Рисунок Б.2 Диалоговое окно открытия изображения
После выбора файла изображение отображается в рабочей области окна.
Рисунок Б.3 Вид окна приложения с открытым изображением
При нажатии пункта меню "Сохранить Ctrl+S" появляется диалоговое окно, в котором вы можете сохранить изображение в различных форматах.
Рисунок Б.4 Вид диалогового окна сохранения изображения
При нажатии пункта меню "Очистить Ctrl+R" происходит очистка рабочей области
При нажатии на кнопки, обозначающие различные фигуры, вы можете рисовать эти фигуры.
Рисунок Б.5 Вид окна с нарисованными примитивами
При нажатии на кнопки, позволяющие выбрать цвет, открывается диалоговое окно выбора цвета.
Рисунок Б.6 Вид диалогового окна выбора цвета
Нажатием на галочку "С заливкой" вы можете рисовать фигуры с заливкой
Рисунок Б.7 Вид окна с нарисованными примитивами с заливкой
При нажатии пункта меню "Отменить Ctrl+Z" происходит отмена последнего действия, возможна отмена нескольких операций.
Рисунок Б.8 Вид окна до отмены последних действий и после
При нажатии пункта меню "Выход Alt+F4" происходит выход из программы.
Разработка и реализация графического редактора сетей Петри. Описание программы, которая позволяет создавать новые сети путем добавления позиций и переходов, соединяя их определенным образом. Основы построения систем автоматизационного проектирования. курсовая работа [2,6 M], добавлен 21.06.2011
Изучение основных алгоритмов генерации различных видов фракталов. Выбор языка и среды программирования. Характеристика структурных элементов растрового графического редактора фракталов. Описание интерфейса приложения, порядок редактирования изображений. курсовая работа [1,2 M], добавлен 04.04.2014
Элементы интерфейса графического редактора Macromedia Flash. Создание изображений, преобразование формы и заливки. Использование слоев и библиотечных образцов. Разработка анимации в среде Flash. Реализация мультипликации, ее звуковое сопровождение. курсовая работа [1,3 M], добавлен 15.11.2013
Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя. курсовая работа [1,3 M], добавлен 28.07.2013
Анализ влияния сглаживающего шума на различные категории томографических изображений. Разработка программного обеспечения для снижения помех и увеличения четкости очертаний крупных объектов. Метод рисования прямоугольников, ограничивающих все контуры. практическая работа [1006,7 K], добавлен 28.09.2019
Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics. курсовая работа [197,5 K], добавлен 19.11.2009
Понятие машинного и реального времени, дискретизация времени. Реализация временных задержек в программе. Вычисление значения многочлена методом Горнера. Разработка схем алгоритмов, основной программы и подпрограмм. Построение графика временной функции. курсовая работа [40,7 K], добавлен 18.04.2012
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Разработка графического редактора курсовая работа. Программирование, компьютеры и кибернетика.
Веб Программирование Темы Курсовых Работ
Реферат: Політична влада: сутність і специфіка
Реферат: Культура XVIII века
Дипломная работа: Гендерные особенности проявления тревожности у подростков
Реферат: Институт монархии в странах Арабского Востока
Проблемы Современного Образования В Рф Сочинение
Контрольная работа по теме Избирательные споры. Финансирование выборов
Реферат: Экономика малого бизнеса "Показатели эффективности использования рессурсов предприятия". Скачать бесплатно и без регистрации
Какого Человека Можно Назвать Великодушным Сочинение
Дипломная работа по теме Управление издержками обращения на примере ЗАО "Корона"
Реферат: Современная система образования в России
Проверить Дипломную На Антиплагиат Онлайн Бесплатно
Реферат: Анализ акцента литовца при чтении русского текста. Скачать бесплатно и без регистрации
Реферат по теме Облік запасів
Курсовая работа по теме Сравнение влияния микробиологических и физических способов обработки семян на всхожесть и рост подсолнечника
Реферат Сестринский Уход В Процессе Родов
Курсовая работа: Анализ стиля речи руководителя и эффективности его общения на примере Центра Кровли Покрофф
Реферат: Оценка рыночной стоимости объекта жилищной недвижимости
Опыт Лучший Учитель Сочинение
Дипломная Работа На Тему Управление Капиталом Предприятия
Географическое положение и экономика Португалии - География и экономическая география реферат
Разработка проекта образовательного модуля для старшеклассников "Топ-менеджеры будущего: современное управление" - Педагогика дипломная работа
Бразилия - География и экономическая география презентация