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

Методы вычерчивания графических примитивов с помощью пера

Метод

Действия

LineTo (x, y)

Рисует линию из текущей точки в точку с установленными координатами

Rectangle (x1,y1,x2,y2)

Рисует прямоугольник. (x1, y1, x2, y2) – координаты левого верхнего и нижнего правого углов прямоугольника

FillRect (x1,y1,x2,y2)

Рисует закрашенный прямоугольник.

(x1, y1, x2, y2) – координаты диагональных углов прямоугольника.

FrameRect(x1,y1,x2,y2)

Рисует контур прямоугольника. Определяет координаты диагональных углов (x1, y1, x2, y2)

RounRect(x1,y1,x2,y2)

Рисует прямоугольник с округленными углами.

Ellipse(x1,y1,x2,y2)

Рисует окружность или эллипс.

(x1, y1, x2, y2) – координаты диагональных углов квадрата либо прямоугольника, в котором рисуется окружность, эллипс соответственно.

Are(x1,y1,x2,y2,x3,y3,x4,y4)

Рисует дугу окружности или эллипса. x1, y1, x2, y2 – определяют эллипс (круг). x3, y3, x4, y4 – задают начальную и конечную точки дуги.

Chord(x1,y1,x2,y2,x3,y3,x4,y4)

Рисует замкнутую фигуру (сегмент), ограниченную дугой окружности или эллипса и хордой. x1, y1, x2, y2 – определяют эллипс (круг). x3, y3, x4, y4 – задают начальную и конечную точки дуги сегмента.

Продолжение таблицы 7.3

Метод

Действия

Pie(x1,y1,x2,y2,x3,y3,x4,y4)

Рисует сектор окружности или эллипса. x1, y1, x2, y2 – определяют эллипс (круг). x3,y3,x4,y4 – задают начальную и конечную точки дуги сектора

Polyline (points, n)

Рисует ломаную линию. points – массив типа TPoint. Каждый элемент массива представляет собой запись поля x и y, который содержит координаты точки перегиба ломанной; n – количество звеньев ломанной.

Poligon (p, n)

Рисует замкнутую фигуру с кусочно-линейной границей, p – массив записей типа TPoint, который содержит координаты вершин многоугольника, n – количество вершин.

У канвы имеется свойство PenPos. Это свойство определяет в координатах канвы текущую позицию пера. Перемещение пера без прорисовки линии, т. е. изменение PenPos производится методом канвы MoveTo(x,y). Здесь x, y координаты точки, в которую перемещается перо. Эта текущая точка является исходной, от которой методом LineTo (x, y) можно провести линию в точку с координатами (x, y). При этом текущая точка перемещается в конечную точку линии и новый вызов метода LineTo будет проводить точку из этой новой текущей точки.

Пример 7.2. Программы рисования синусоиды методом Pen (Пера). Для формы созданной в первом примере, напишите код программы, указанный в листинге 2 для командной кнопки Нарисовать 2.

Листинг 7.2

void __fastcall TForm1::Button1Click(TObject *Sender)

{

const float Pi= 3.14159;

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

int px,py; // Координаты пикселя, соответствующие

Image2->Canvas->MoveTo(0,Image2->Height/2);

//точке с координатами x,y

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

{

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

//с координатой px

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

y = sin(x);

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

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

// проводится линия на втором графике

Image2->Canvas->LineTo(px,py);

}

}

Откомпилируйте программу и выполните её. Легко видеть, что качество двух одинаковых графиков сильно различается. На левом графике на крутых участках сплошной линии нет, она распадается на отдельные точки – пиксели. А правый график весь сплошной. Это показывает, что при равных условиях рисовать лучше пером, а не по пикселям.

В заключение данного раздела приведем пример построения графика функции с осями координат.

Пример 7.3. Пусть вам требуется представить результаты расчетов функции y = a * sin (x)* exp (x / b) для различных значений a, b и аргумента х в графическом виде.

Исходными данными для решения задачи являются параметры функции: x, a, b.

Выходные данные: значение y от x, отображенное в графической форме.

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