Пояснительная записка 24с., 6 рис., 3табл., 4 источника, 4 приложения
С++, ПЛОСКОСТЬ, АЛГОРИТМ, ВЫПУКЛАЯ ОБОЛОЧКА
Цель программы - разработать программу по следующим условиям:
Паутина. Получить на экране рисунок паутины с центром в произвольной (заданной) точке, с произвольным числом лучей. Паутина образована лучами и многоугольниками.
Размеры паутины задаются вводом.
В Процессе выполнения Курсового проекта мы научились программировать на языке программирования С++.
В Данной работе мы сделали программу , которая рисует паутину по заданным в неё параметрам.
Знания полученные при выполнении работы мы сможем применить в дальнейшем.
СОДЕРЖАНИЕ
РЕФЕРАТ
ВВЕДЕНИЕ
. ОБЗОР ЛИТЕРАТУРЫ
. ОПИСАНИЕ ПРОГРАММЫ
. ОПИСАНИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
C++ Builder- программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке C++.
Изначально разрабатывался компанией BorlandSoftware, а затем её подразделением CodeGear, которое сейчас принадлежит компании EmbarcaderoTechnologies.++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi[1]. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно.++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса и пр.++ Builder первоначально создавалась только для платформы MicrosoftWindows. Поздние версии, содержащие Кроссплатформенную компонентную библиотекуBorland, поддерживают и Windows и Linux.
В 2003Borland выпустила C++ BuilderX (CBX), написанный при помощи той же инфраструктуры, что и JBuilder, который при этом был мало похож на C++ Builder или Delphi. Этот продукт предназначался для разработки больших программ для крупных предприятий, но коммерческого успеха не достиг. В конце 2004 года Borland объявила, что продолжит развитие классического C++ Builder и объединит его со средой разработки Delphi, прекратив, таким образом, разработку C++ BuilderX.
Спустя примерно год после этого объявления, Borland выпустила BorlandDeveloperStudio 2006, который включал в себя Borland C++ Builder 2006, предлагавший улучшенное управление конфигурацией и отладкой. BorlandDeveloperStudio 2006 - единственный полноценный комплект, содержащий Delphi, C++Builder и C#Builder.
В 2007CodeGear выпустила C++ Builder 2007, в котором реализовала полную поддержку API MicrosoftWindowsVista, увеличила полноту соответствия стандарту ANSI C++, увеличила скорость компиляции и сборки до 500 %, включила поддержку MSBuild, архитектур баз данных DBX4 и «VCL для Web», поддерживающий AJAX. Поддержка API MicrosoftWindowsVista включила в себя приложения, изначально оформленные в стиле Vista, и естественную поддержку VCL для Aero и VistaDesktop. CodeGear RAD Studio 2007 содержит C++ Builder 2007 и Delphi. Также в 2007 CodeGear «воскресила» марку «Turbo» и выпустила две «Turbo» версии C++ Builder: Turbo C++ Professional и Turbo C++ Explorer (бесплатный), основанных на Borland C++ Builder 2006.
В конце 2008 года компания CodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и С++ Builder 2009. В 2009 году в составе RAD Studio вышел C++ Builder 2010.
Ранее сообщалось, что следующая версия, CodeGear C++Builder (кодовое имя
«Commodore»), будет обладать поддержкой x86-64 и возможностью создавать
машинный x86-64 код. Однако в 2010 году в состав RAD Studio XE включена версия
C++ Builder XE без этой функциональности.
1. ОБЗОР
ЛИТЕРАТУРЫ
Цель программы - разработать программу по следующим условиям:
Паутина. Получить на экране рисунок паутины с центром в произвольной (заданной) точке, с произвольным числом лучей. Паутина образована лучами и многоугольниками.
C++ Builder может вывести графику на поверхность формы (или компонента image), которой соответствует свойство canvas (Canvas - холст для рисования). Для того чтобы на поверхности формы или компонента image появилась линия, окружность, прямоугольник или другой графический элемент (примитив), необходимо к свойству Canvasприменить соответствующий метод (Таблица 1.1).
Например, оператор Forml->Canvas->Rectangle(10,10,50, 50); рисует
на поверхности формы прямоугольник.
Таблица 1.1 Методы вычерчивания графических примитивов
|
Метод |
Действие |
|
LineTo(x,y) |
Рисует линию из текущей точки в точку с указанными координатами |
|
Rectangle (x1,y1,x2, y2) |
Рисует прямоугольник, x1, y1 и х2, у2 - координаты левого верхнего и правого нижнего углов прямоугольника. Цвет границы и внутренней области прямоугольника могут быть разными |
|
FillRect (x1,y1,x2,y2) |
Рисует закрашенный прямоугольник, x1, y1, х2, у2 - определяют координаты диагональных углов |
|
FrameRect(x1,y1,x2,y2) |
Рисует контур прямоугольника, x1, y1, х2, у2 - определяют координаты диагональных углов |
|
RounRect (x1,y1,x2,y2,x3,y3) |
Рисует прямоугольник со скругленными углами |
|
Ellipse (x1,y1,x2,y2) |
Рисует эллипс или окружность (круг), x1, y1, х2, у2 - координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность |
|
Polyline (points, n) |
Рисует ломаную линию, points- массив типа TPoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной; л - количество звеньев ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д. |
Методы вывода графических примитивов рассматривают свойство canvas как
некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится
как "поверхность", "холст для рисования"). Холст состоит из
отдельных точек - пикселов. Положение пиксела на поверхности холста
характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты
возрастают сверху вниз и слева направо. Левый верхний пиксел поверхности формы
(клиентской области) имеет координаты (0, 0), правый нижний - (clientwidth, clientHeight). Доступ к
отдельному пикселу осуществляется через свойство Pixels, представляющее собой
двумерный массив, элементы которого содержат информацию о цвете точек холста. Методы вычерчивания графических примитивов обеспечивают
только вычерчивание. Вид графического элемента определяют свойства
Реn(карандаш) и Brush (кисть) той поверхности (Canvas), на которой рисует
метод. Карандаш и кисть, являясь свойствами
объекта Canvas, в свою очередь представляют собой объекты Реn и Brush. Свойства
объекта Реп (табл. 1.2) задают цвет, толщину и тип линии или границы геометрической
фигуры. Свойства объекта Brush (табл. 1.3) задают цвет и способ закраски
области внутри прямоугольника, круга, сектора или замкнутого контура.
Таблица 1.2 Свойства объекта Реn (карандаш)
|
Свойство Определяет Color Цвет линии Width Толщину линии (задается в пикселах) Style Вид линии (psSolid- сплошная; psDash- пунктирная, длинные штрихи; psDot - пунктирная, короткие штрихи; psDashDot - пунктирная, чередование длинного и короткого штрихов; psDashDotDot - пунктирная, чередование одного длинного и двух коротких штрихов; psClear - линия не отображается (используется, если не надо изображать границу области - например, прямоугольника) |
Таблица 1.3. Свойства объекта Brush (кисть)
|
Свойство |
Определяет |
|
Color |
Цвет закрашивания замкнутой области |
|
Style |
Стиль заполнения области (bsSolid - сплошная заливка. Штриховка: bsHorizontal - горизонтальная; bsVertical - вертикальная; bsFDiagonal - диагональная с наклоном линий вперед; bsBDiagonal - диагональная с наклоном линий назад; bsCross - в клетку; bsDiagCross - диагональная клетка |
Любая картинка, чертеж или схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Таким образом, для того чтобы на экране появилась нужная картинка, программа должна обеспечить вычерчивание (вывод) графических элементов - примитивов, составляющих эту картинку.
Вычерчивание графических примитивов на поверхности (формы или компонента
image - области вывода иллюстрации) осуществляется применением соответствующих
методов к свойству canvas этой поверхности.
. ОПИСАНИЕ
ПРОГРАММЫ
Компоненты формы. Для создания приложения в разработчике C++Builderимеется визуальное поле объектов (Рисунок 2.1). Опишем применяющиеся объекты.
На форме находятся следующие объекты:
objectForm1: TForm1: TButton: TButton: TButton: TButton:
TImage: TEdit: TEdit: TLabel: TLabel: TLabel
Рисунок 2.1 Форма приложения (Form1)
Рисунок 2.2 Форма «Опрограмме» (Form2)
На форме находятся следующие объекты:
objectForm2: TForm2Button1: TButton: TImage: TLabel: TLabel: TLabel
К стандартным свойствам, методам и событиям для битовых кнопок C++Builder добавляет свойства, управляющие отображением рисунка на кнопке. Хотя битовой кнопке можно назначить лишь одно изображение, оно может подразделяться на четыре равные по размеру части, соответствующие различным состояния кнопки: отжата (up), нажата (down), запрещена (disabled) и нажимается (clicked). Свойство Kind определяет стандартные типы кнопок, такие как OK, Cancel и т п., наделяя кнопки соответствующими изображениями и поведением.
· Default
· TabStop
· OnClick
· OnContextPopup
· OnDragDrop
· OnDragOver
· OnEndDock
· OnEndDrag
· OnExit
· OnEnter
Компонент TLabel
Элемент управления, предназначенный для отображения текста на форме. Не имеет собственного окна.
Основные свойства.
В C Builder свойство TLabel::Enabled используется, чтобы указать, будет ли метка (компонент TLabel) отвечать на события мыши, клавиатуры и таймера, или нет.
Если элемент компонент TLabel запрещен (когда свойство Enabled установлено в true), то он изображается затененным и не реагирует на внешние воздействия: события мыши, клавиатуры и таймера.
Компонент TImage
Компонент Image (вкладка Additional) класса TImage служит
для размещения на форме одного из трех поддерживаемых ти-
пов изображений: растрового рисунка (*.bmp), значка (*.ico) или мета-
файла (*.wmf или *.emf).
Алгоритм рисования дома сводится к вводу исходных данных и на основе их прорисовки элементарных геометрических фигур.
Для рисования прямоугольников используется следующий графический приметив:
Rectangle (x1,y1,x2, y2), где x1, y1 и х2, у2 - координаты левого верхнего и правого нижнего углов прямоугольника соответственно.
Для рисования линий используется:(x,y) - перемещает курсор в то место, откуда будет рисоваться линия. LineTo(x,y)- рисует прямую линию из текущего положения в указанные координаты.
МетодFloodFill закрашивает текущей кистью Brush
замкнутую область канвы, определенную цветом и начальной точкой закрашивания
(X, Y). Точка с координатами X и Y является произвольной внутренней точкой
заполняемой области, которая может иметь произвольную форму. Граница этой
области определяется сочетанием параметров Color и FillStyle. Параметр Color
типа TColor указывает цвет, который используется при определении границы
закрашиваемой области, а параметр FillStyle определяет, как именно по этому
цвету определяется граница. Если FillStyle = fsSurface, то заполняется область,
окрашенная цветом Color, а на других цветах метод останавливается. Если
FillStyle=fsBorder, то наоборот, заполняется область окрашенная любыми цветами,
неравными Color, а на цвете Color метод останавливается.
Image1->Canvas->Brush->Color=clGreen;
Image1->Canvas->FloodFill(x11,y11,Image1->Canvas->Pixels[x11][y11],fsSurface);
3. ОПИСАНИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ
Для входа в программу необходимо запустить файл Project1.exe
Рисунок 3.1 Программа. Запуск
Программа запускается начальной страницей с изображением рабочего формы. На форме находятся 4 кнопки: - «Нарисовать». При нажатии на эту кнопку, происходит рисование кубика Рубика.
«О программе». При нажатии на эту кнопку открывается вторая форма, в которой указаны данные о разрабатываемом продукте и разработчике.
«Закрыть». При нажатии на эту кнопку программа закрывается.
«Стереть». При нажатии на эту кнопку осуществляется заливка поля белым цветом, что в свою очередь стирает дом.
С левой стороны находится поле для ввода исходных данных:
Координата X;
Координата Y.
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
Основной целью программы является рисование паутины из любой заданной точки.
Проведём тестирование программы. Форма «О программе».
Рисунок 4.1 О программе
Выводится окно с названием программы, дата её разработки и данные разработчика.
Произведём тестирование рисования паутины при вводе различных начальных
точек (Рисунок 4.2 и 4.3).