Разработка программы для создания, просмотра и сохранения изображений. Реализация функции рисования различных фигур с заливкой и без заливки, функции очистки рабочего пространства и отмены последних действий. Обоснование выбранных методов и алгоритмов.
Аннотация к работе
ВВЕДЕНИЕ3.1 Класс CSHAPE - базовый абстрактный класс фигуры 3.2 Класс контейнер shapes - класс контейнер для фигур 3.3 Класс CLINE : public CSHAPE. 3.4 Класс CRECT : public CLINE.4.1 Метод System::Void BRECT_Click() - Нажатие кнопки прямоугольника 4.2 Метод System::Void PICTUREBOX1_MOUSEDOWN 4.6 Метод shapes * shapes::ADDS(CSHAPE *s) - Добавление элемента в списокПеред тем как рисовать линии и фигуры, отображать текст, выводить изображения и управлять ими, необходимо создать объект Graphics. Объект Graphics представляет поверхность рисования GDI и является объектом, который используется для создания графических изображений. После создания объекта Graphics его можно использовать для рисования линий и фигур, отображения текста или изображения и управления ими.Также для управления прорисовки объектов на форме с помощью мыши был продуман свой собственный метод, а именно при нажатии кнопки мыши запоминается первая координата курсора, при отпускании кнопки, по следующей координате прорисовывается объект.Поле Тип Описание color1 int Код цвета в RGB color2 int Код цвета в RGB для заливки filled bool Заливка x float * Указатель на массив координат по горизонтали y float * Указатель на массив координат по вертикали ~CSHAPE() - Деструктор virtual Draw(PICTUREBOX^ picbox) = 0 void Чисто виртуальный метод прорисовки фигуры virtual SETPOINT(unsigned int i, float X, float Y) void Виртуальный метод добавления точки в массивы координат 3.2 Класс контейнер shapes - класс контейнер для фигур Поле Тип Описание next shapes * Указатель на следующий элемент в списке prev shapes * Указатель на предыдущий элемент в списке Метод класса Тип Описание shapes() - Конструктор класса shapes4.1 Метод System::Void BRECT_Click() - Нажатие кнопки прямоугольника 4.2 Метод System::Void PICTUREBOX1_MOUSEDOWN() - Событие на нажатие кнопки 4.3 Метод System::Void PICTUREBOX1_MOUSEDOWN() - Событие на нажатие кнопки 4.4 Метод System::Void Form1_Load() - Загрузка формы 4.
Список литературы
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
C - компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником - языком C, - наибольшее внимание уделено поддержке объектно-ориентированного и обобщенного программирования. Являясь одним из самых популярных языков программирования, C широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C - как бесплатных, так и коммерческих.
В данной курсовой работе использовалась среда программирования Microsoft Visual Studio Team System 2008, являющаяся одним из мощнейших средств по разработке современных приложений. При разработке приложения учитывались особенности программирования в данной среде, а именно создавался проект CLR Windows Forms Application.1. Харви М. Дейтел, Пол Дж. Дейтел - Как программировать на C - 2008
2. Петцольд - Программирование Для Microsoft Windows На С#. В 2-х Томах. Том 1 - 2002
3. Петцольд - Программирование Для Microsoft Windows На С#. В 2-х Томах. Том 2 - 2002
void CBEZIER::SETPOINT(unsigned int i, float X, float Y) if(i == 0) if(count == 0) for(int j=0;j<3;j ) x[j] = X;
y[j] = Y;
else x[3-count] = X;
y[3-count] = Y;
count ;
void CBEZIER::Draw(PICTUREBOX^ picbox)
{
Graphics^ g = Graphics::FROMIMAGE(picbox->Image);
Pen^ pen1 = gcnew Pen(Color::FROMARGB(color1));
if (count == 3) g->DRAWBEZIER(pen1,x[0],y[0],x[1],y[1],x[2],y[2],x[3],y[3]);
count = 0;
CSHAPE * CBEZIER::New()
CBEZIER *B = new CBEZIER;
B->SETCOLOR(0,Color::FROMARGB(color1));
B->SETCOLOR(1,Color::FROMARGB(color2));
B->SETFILLED(filled);
B->SETPOINT(0,x[0],y[0]);
B->SETPOINT(1,x[1],y[1]);
B->SETPOINT(2,x[2],y[2]);
B->SETPOINT(3,x[3],y[3]);
return B;
//Form1.h
#include "stdafx.h"
#include "FIGURES.h"
#include "math.h"
#pragma once shapes *beg, *end;
CSHAPE *S1;
namespace Paint { using namespace System;
using namespace System::COMPONENTMODEL;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
///
/// Summary for Form1
///
/// 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
{ public: Form1(void)
INITIALIZECOMPONENT();
//TODO: Add the constructor code here protected: ///