Свойства, методы, события, типы, классы 1005

Brush. Точки (XI, Y1) и (Х2, Y2) определяют прямоугольник, описывающий эл-
липс. Начальная точка дуги определяется пересечением эллипса с прямой, прохо-
дящей через его центр и точку (ХЗ, Y3). Конечная точка дуги определяется пере-
сечением эллипса с прямой, проходящей через его центр и точку (Х4, Y4). Дуга ри-
суется против часовой стрелки от начальной до конечной точки. Рисуются пря-
мые, ограничивающие сегмент и проходящие через центр эллипса и точки (ХЗ,
Y3) и (Х4, Y4).

В Windows 95/98 суммы XI + Х2, Y1 + Y2 и XI + Х2 + Y1 + Y2 не должны
превышать 32768.

В Windows NT направление рисования дуги можно изменить на направление
по часовой стрелке вызовом функции SetArcDirection.

Примеры

Операторы

Imagel->Canvas->Pie(0, 0, 200, 200, 200, О, О, О);

Image2->Canvas->Pie(0, 0, 200, 200, О, О, 200, 0) ;

дают результат, показанный на рисунке.

PoIyBezier и PolyBezierTo

Рисуют на канве текущим пером кусочную кривую третьего порядка, сглажи-
вающую заданное множество точек

Класс TCanvas

Прототип

void   fastcall PoIyBezier(const Windows::TPoint * Points,
const int Points Size);

void _fastcall PolyBezierTo(const Windows::TPoint * Points,
const int Points_Size);

Описание
Методы PoIyBezier и PolyBezierTo склаживают множество точек Points_Size,

содержащихся в массиве Points, кусочной кривой третьего порядка. При этом
функция PoIyBezier точно отображает первую и последнюю точку, a PolyBezier-
To — только последнюю. Число точек Points_Size для каждого метода должно
быть строго определенным (хотя это, к сожалению, не указано в справке C++Buil-
der): для PoIyBezier оно должно быть кратно 3 (т.е. 1*3), а для PolyBezierTo — на
единицу меньше числа, кратного 3 (т.е. i*3-l). Если число точек не равно заданно-
му, то функции просто ничего не рисуют.

Исходя из этого при произвольном числе точек N имеет смысл автоматически
приводить число точек к требуемому. Например, такими операторами: