Процедура Sector

Модуль GRAPH

Рисует и закрашивает сектор эллипса.

Объявление:

Procedure Sector(X, Y : Integer; StAngle, EndAngle, XRadius, YRadius : Word)

Режим:

Protected,  Real

Замечание:

Использует (X, Y) как координаты центра, XRadius и YRadius определяют горизонтальный и вертикальный радиусы соответственно. Sector рисует сектор от StAngle до EndAngle, с внешней границей текущего цвета и закрашивает его стилем и цветом определенными SetFillStyle и SetFillPattern.

При начальном угле равном 0 и конечном равном 360 Sector будет рисовать и закрашивать полный эллипс. Углы для процедур Arc, Ellips, FillEllipse, PieSlice и Sector отсчитываются против часовой стрелки. Например, 0 градусов в 3 часах, 90 градусов в 12 часах, 180 градусов в 9 часах и так далее.

Если при заполнении сектора происходит ошибка, то GraphResult возвращает значение grNoScanMem.

Нужно быть в графическом режиме.

Пример:

{Sector.PAS}
 
 { Пример программы для процедуры Sector }
 
 Uses Graph;
 
 Const R = 50;
 
 Var Driver, Mode : Integer;
       Xasp, Yasp : Word;
 Begin
  { Инициализируем графику }
  Driver:=Detect;
  InitGraph(Driver, Mode, '');
  If GraphResult < 0 Then Halt(1);
  Sector(GetMaxX Div 2, GetMaxY Div 2, 0, 45, R, R);
  { Рисуем эллипс в виде окружности }
  GetAspectRatio(Xasp, Yasp);
  Sector(GetMaxX div 2, GetMaxY div 2, 180,
         135, R, R * LongInt(Xasp) Div Yasp);
  ReadLn;
  CloseGraph;
 End.