Графические возможности TurboPascal 7.0 — страница 15

  • Просмотров 6206
  • Скачиваний 578
  • Размер файла 3666
    Кб

процедуру GetPalette), в которой воз­вращаются размер и цвета палитры. Процедура SetFillStyle. Устанавливает стиль (тип и цвет) заполнения. Заго­ловок: Procedure SetFillStyle(Fill,Color: Word); Здесь Fill - тип заполнения; Color - цвет заполнения. С помощью заполнения можно покрывать какие-либо фрагменты изображения пе­риодически повторяющимся узором. Для указания типа заполнения используются следующие предварительно определенные константы: const EmptyFill = 0

{Заполнение фоном (узор отсутствует)} SolidFill = 1 {Сплошное заполнение} LineFill = 2 {Заполнение------} LtSlashFill = 3 {Заполнение ///////} SlashFill = 4 {Заполнение утолщенными ///} BkSlashFill = 5 {Заполнение утолщенными \\\} LtBkSlashFill = 6 {Заполнение \\\\\\\} HatchFill = 7 (Заполнение +++++++} XHatchFill = 8 (Заполнение ххххххх} InterleaveFill = 9 (Заполнение прямоугольную клеточку} WideDotFill = 10 {Заполнение редкими точками} CloseDotFill = 11 {Заполнение частыми точками} UserFill = 12 (Узор определяется

пользователем} Процедура FloodFill. Заполняет произвольную замкнутую фигуру, используя текущий стиль заполнения (узор и цвет). Заголовок: Procedure FloodFill(X,Y: Integer; Border: Word); Здесь X, Y- координаты любой точки внутри замкнутой фигуры; Border - цвет гра­ничной линии. Если фигура незамкнута, заполнение «разольется» по всему экрану. Следует учесть, что реализованный в процедуре алгоритм просмотра границ замк­нутой фигуры не отличается

совершенством. В частности, если выводятся подряд две пустые строки, заполнение прекращается. Такая ситуация обычно возникает при за­полнении небольших фигур с использованием типа LtSlashFill. В фирменном руково­дстве по Турбо Паскалю рекомендуется, по возможности, вместо процедуры FloodFill использовать FillPoly (заполнение прямоугольника). Процедура Bar. Заполняет прямоугольную область экрана. Заголовок: Procedure Bar(XI,Y1,X2,Y2: Integer); Здесь

X1...Y2 - координаты левого верхнего (XI, Y1) и правого нижнего (Х2, Y2) углов закрашиваемой области. т Процедура закрашивает (но не обводит) прямоугольник текущим образцом узора и текущим цветом, которые устанавливаются процедурой SetFillStyle. Следующая программа дает красивые цветовые эффекты (закраска случайных прямоугольников). Uses Graph, CRT; var d, г, е : Integer; begin {Инициируем графику} d := Detect; InitGraph(d, r, ''); e := GraphResult; if e <> grOk then WriteLn(GraphErrorMsg(e)) else begin

{Создаем окно в центре экран} d := GetMaxX div 4; r := GetMaxY div 4; Rectangle(d,r,3*d,3*r); SetViewPort(d+1,r+1,3*d-l,3*r-l,ClipOn); {Цикл вывода и закраски случайных многоугольников} repeat SetFillStyle(Random(12),Random(succ(GetMaxColor))); Bar(Random(GetMaxX),Random(GetMaxY), Random(GetMaxX),Random(GetMaxY)); until KeyPressed; if ReadKey=#0 then d := ord(ReadKey); CloseGraph end end. Процедура ВагЗР. Вычерчивает трехмерное изображение параллелепипеда и за­крашивает его переднюю грань . Заголовок: Procedure Bar3D (XI,Y1,X2,Y2,Depth: Integer; Top: Boolean); 8. Примеры Нарисовать эмблемы