Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
374.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.16 Mб
Скачать

7.1. Рисование по пикселям

Пример 7.1. Построить график функции y = sin (x). Для данной функции xmin = 0, xmax = 4π, ymin = –1, ymax = 1.

Создайте проект и разместим на форме метки, командные кнопки и два объекта Image1 и Image2, открыв страницу Additional на панели компонентов, как показано на рис. 7.1.

Выделите оба окна Image и, вызвав контекстное меню, командой Size установите размеры окон абсолютно одинаковыми.

Напишите код программы для события Click командной кнопки Нарисовать 1, показанный на листинге 7.1.

Листинг 7.1

Программа построения синусоиды методом рисования по пикселям

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

const float Pi= 3.14159;

float x, y; //координата функции

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

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

{

//x – координата точки функции, соответствующая пикселю с координатой px

x = px*4 * Pi/Image1->Width;

y = sin(x);

//py – координата пикселя, соответствующая координате y точки функции

py = Image1 -> Height - (y + 1)* Image1 -> Height/2;

// устанавливается цвет пикселя для отображения на холсте

Image1->Canvas-> Pixels[px][py] = clBlack;

}

}

В этом коде вводятся переменные x и y, являющиеся значениями аргумента и функции, а также переменные px и py, являющиеся координатами пикселов, соответствующими x и y. Сама процедура состоит из цикла по всем значениям горизонтальной координаты пикселов px компонента Image1. Сначала выбранное значение px пересчитывается в соответствующее значение x. Затем производится вызов функции и определяется ее значение y. Это значение пересчитывается в вертикальную координату py. И в заключение цвет пикселя с координатами (px, py) устанавливается черным.

Рис. 7.1. Форма программы построения графика sin (x)

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

У канвы имеется объекты Pen – перо и Brush –кисть. В свою очередь эти объекты имеют ряд свойств и методов. Свойства объекта Pen (табл. 7.1) задают цвет, толщину, тип линии и границы геометрической фигуры. Свойства объекта Brush (табл. 7.2) задают способ закраски внутри замкнутой области (внутри прямоугольника, внутри окружности, сектора).

Таблица 7.1

Свойства объекта Pen

Свойство

Что определяет

Значения

Color

Цвет линии

clRed – красный, clGreen – зеленый, clBlue – голубой, clBlack – черный и др., либо цифровой код, определяющий цвет.

Width

Толщина линии

Задается в пикселях

Style

Вид линии

Ps Solid – сплошная линия

psDash – штриховая линия

psDot – пунктирная линия

psClear – нет линии

psInsideFrame – сплошная линия. Но при Width > 1, допускающая цвета, отличные от палитры Windows.

Таблица.7.2

Свойства объекта Brush

Свойство

Что определяет

Значения

Color

Цвет

закрашивания замкнутой

области

clRed – красный,

clGreen – зеленый,

clBlue – голубой

clBlack – черный и др. либо цифровой код, определяющий цвет.

Style

Стиль

закрашивания области

bsSolid – сплошная заливка.

Штриховка:

bsGorizontal – горизонтальная;

bsVertical – вертикальная;

bsFDiogonal – диагональная с наклоном линий влево;

bsBDiogonal – диагональная с наклоном линий вправо;

bsCross – в клетку;

bsDiagCross – диагональная клетка.

Таблица 7.3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]