1006_____________________________________________Глава 15

PolyBezier(points, (N/3)*3);

PolyBezierTo(points, (N/3)*3-1) ;

В этих операторах число точек N за счет округления при целочисленном деле-
нии автоматически приводится к требуемому.

Пример

Ниже приведен код построения аппроксимаций функции -sin(x) методами Po-
lyBezier, PolyBezierTo и Polyline.

const N = 10, Lx = 500, Ly = 100, Т = 10;

TPoint points[N];

// заполнение массива
for (int i = 0; i <= N; i++)

points[i] = Point((int)(i * Lx / (N-1)),

(int)(sin((double)i * Т / (N-l))*Ly) +
Imagel->ClientHeight / 2);

// рисование
Imagel->Canvas->Pen->Color = clBlack;

Imagel->Canvas->Polyline(points, N-1);

Imagel->Canvas->Pen->Color = cIRed;

Imagel->Canvas->PolyBezier(points, (N/3)*3) ;

Imagel->Canvas->Pen->Color = cIGreen;

Imagel->Canvas->PolyBezierTo(points, (N/3)*3-1) ;

Polygon

Рисует на канве текущим пером замкнутую фигуру (многоугольник) по задан-
ному множеству угловых точек, замыкая первую и последнюю точки и закраши-
вая внутреннюю область фигуры текущей кистью

Класс TCanvas

Прототип

void _fastcall Polygon(const Windows::TPoint * Points,
const int Points Size);

Описание

Метод Polygon рисует на канве замкнутую фигуру (полигон, многоугольник)
по множеству угловых точек, заданному массивом Points. Первая из указанных
точек соединяется прямой с последней. Этим метод Polygon отличается от метода
Polyline, который не замыкает конечные точки. Рисование проводится текущим
пером Pen. Внутренняя область фигуры закрашивается текущей кистью Brush.

Метод позволяет рисовать фигуру по точкам, хранящимся в массиве элемен-
тов типа TPoint.

Пример

Операторы

TPoint points [5] ;

points[0] = Point(30,150);

points[l] = Point(40,130);

points[2] = Point(50,140);

points [3] = Point(60,130);

points [4] = Point(70,150);

Imagel->Canvas->Polygon(points,4) ;

рисуют на канве формы многоугольник по точкам, хранящимся в массиве points.