Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовые / Язык программирования Сpp 25.09.11.doc
Скачиваний:
110
Добавлен:
10.05.2015
Размер:
10.13 Mб
Скачать

Методы создания собственной графики. Рисование по пикселам

Чаще всего графические задачи возникают тогда, когда нужно отобразить результаты работы, например, построить график рассчитанной функции. График не может висеть просто так на экране. Он должен быть помещен на специальную подложку или экран. Многие компоненты имеют свойство Canvas(канва, холст), который и является такой подложкой. На канве можно изображать готовые или строить свои рисунки. СвойствоCanvasимеют формы, и графические компонентыImage, Paint Box, Bitmapи многие другие.

Каждая точка канвы имеет координаты XиY. Началом координат является верхний левый угол. Единицей измерения координат является пиксел, т.е. наименьший элемент экрана.

Свойство Canvasне отображается в инспекторе объектов. Им следует воспользоваться при записи кода. Рисовать по канве можно разными способами. Первый способ, это рисовать по пикселям. Делается это с помощью свойства канвыPixels[int X][int Y]–это двумерный массив, в который записывается цвет пиксела, соответствующего координатамXиY.

Ниже рассмотрен пример, в котором после нажатия кнопки прорисовывается график функции Y=sin(X). Мы предполанаем, что читатель уже самостоятельно сможет создать проект, в котором на форме находится кнопка «Нарисовать» и объект типаImage. В заголовочные файлы поместите#include<math.h>, а в обработчике событийOnClickзапишите следующий код:

#define PI 3.1415926

Int px, py; //координаты пикселей

float X,Y; //координаты функции

for(PX=0; PX<Image1->Width; PX++) {

X=PX*4*PI/Image1->Width;

Y=sin(X);

PY=Image1->Height-(Y+1)*Image1->Height/2;

Image1->Canvas->Pixels[PX][PY]=clBlack;

}

Врезультатепосленажатиякнопкипоявитсяграфиксинусоиды.

Рисование с помощью пера

Рисованиепопикселямимееточевидныйнедостаток– разрывы линии, которая должна быть непрерывной. Рассмотрим еще один способ рисования – это рисование с помощью пера.

Канва имеет свойство Pen, т.е. перо. В свою очередь этот объект имеет несколько свойств:Color(цвет),Width(ширина линии),Style(стиль линии: сплошная, штриховая, пунктирная и т.д.).

Таблица. Свойства объекта Реn (карандаш)

Свойство

Определяет

Color

Цвет линии

Width

Толщину линии (задается в пикселах)

Style

Вид линии (psSolid- сплошная;psDash- пунктирная, длинные штрихи;psDot- пунктирная, короткие штрихи;psDashDot- пунктирная, чередование длинного и короткого штрихов;psDashDotDot- пунктирная, чередование одного длинного и двух коротких штрихов;psClear- линия не отображается (используется, если не надо изображать границу области - например, прямоугольника)

Канва имеет так же свойство PenPos, которое определяет координаты пера. Для того, чтобы переместить перо без прорисовки линии используется методMoveTo(X,Y), гдеXиYэто координаты точки в которую помещается перо. От этой точки методомLineTo(X,Y)проводится прямая в точку с новыми координатами. Следующий вызов функцииLineTo(X,Y)приведет к повторному вычерчиванию прямой от точки в которой остановилось перо до точки с координатами, указанными в качестве аргументов функции.

С помощью пера график той же функции можно нарисовать с помощью следующих инструкций:

#define PI 3.1415926