Графические примитивы представляют собой процедуры, осуществляющие рисование в графическом окне. Рисование осуществляется текущим пером (линии), текущей кистью (заливка замкнутых областей) и текущим шрифтом (вывод строк).
procedure SetPixel(x,y: integer; c: Color); Закрашивает пиксел с координатами (x,y) цветом c |
procedure PutPixel(x,y: integer; c: Color); Закрашивает пиксел с координатами (x,y) цветом c |
function GetPixel(x,y: integer): Color; Возвращает цвет пиксела с координатами (x,y) |
procedure MoveTo(x,y: integer); Устанавливает текущую позицию рисования в точку (x,y) |
procedure LineTo(x,y: integer); Рисует отрезок от текущей позиции до точки (x,y). Текущая позиция переносится в точку (x,y) |
procedure LineTo(x,y: integer; c: Color); Рисует отрезок от текущей позиции до точки (x,y) цветом c. Текущая позиция переносится в точку (x,y) |
procedure Line(x1,y1,x2,y2: integer); Рисует отрезок от точки (x1,y1) до точки (x2,y2) |
procedure Line(x1,y1,x2,y2: integer; c: Color); Рисует отрезок от точки (x1,y1) до точки (x2,y2) цветом c |
procedure FillCircle(x,y,r: integer); Заполняет внутренность окружности с центром (x,y) и радиусом r |
procedure DrawCircle(x,y,r: integer); Рисует окружность с центром (x,y) и радиусом r |
procedure FillEllipse(x1,y1,x2,y2: integer); Заполняет внутренность эллипса, ограниченного прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure DrawEllipse(x1,y1,x2,y2: integer); Рисует границу эллипса, ограниченного прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure FillRectangle(x1,y1,x2,y2: integer); Заполняет внутренность прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure FillRect(x1,y1,x2,y2: integer); Заполняет внутренность прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure DrawRectangle(x1,y1,x2,y2: integer); Рисует границу прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure FillRoundRect(x1,y1,x2,y2,w,h: integer); Заполняет внутренность прямоугольника со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев |
procedure DrawRoundRect(x1,y1,x2,y2,w,h: integer); Рисует границу прямоугольника со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев |
procedure Circle(x,y,r: integer); Рисует заполненную окружность с центром (x,y) и радиусом r |
procedure Ellipse(x1,y1,x2,y2: integer); Рисует заполненный эллипс, ограниченный прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure Rectangle(x1,y1,x2,y2: integer); Рисует заполненный прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2) |
procedure RoundRect(x1,y1,x2,y2,w,h: integer); Рисует заполненный прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев |
procedure Arc(x,y,r,a1,a2: integer); Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки) |
procedure FillPie(x,y,r,a1,a2: integer); Заполняет внутренность сектора окружности, ограниченного дугой с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки) |
procedure DrawPie(x,y,r,a1,a2: integer); Рисует сектор окружности, ограниченный дугой с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки) |
procedure Pie(x,y,r,a1,a2: integer); Рисует заполненный сектор окружности, ограниченный дугой с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки) |
procedure DrawPolygon(points: array of Point); Рисует замкнутую ломаную по точкам, координаты которых заданы в массиве points |
procedure FillPolygon(points: array of Point); Заполняет многоугольник, координаты вершин которого заданы в массиве points |
procedure Polygon(points: array of Point); Рисует заполненный многоугольник, координаты вершин которого заданы в массиве points |
procedure Polyline(points: array of Point); Рисует ломаную по точкам, координаты которых заданы в массиве points |
procedure Curve(points: array of Point); Рисует кривую по точкам, координаты которых заданы в массиве points |
procedure DrawClosedCurve(points: array of Point); Рисует замкнутую кривую по точкам, координаты которых заданы в массиве points |
procedure FillClosedCurve(points: array of Point); Заполняет замкнутую кривую по точкам, координаты которых заданы в массиве points |
procedure ClosedCurve(points: array of Point); Рисует заполненную замкнутую кривую по точкам, координаты которых заданы в массиве points |
procedure TextOut(x,y: integer; s: string); Выводит строку s в прямоугольник к координатами левого верхнего угла (x,y) |
procedure TextOut(x,y: integer; n: integer); Выводит целое n в прямоугольник к координатами левого верхнего угла (x,y) |
procedure TextOut(x,y: integer; r: real); Выводит вещественное r в прямоугольник к координатами левого верхнего угла (x,y) |
procedure DrawTextCentered(x,y,x1,y1: integer; s: string); Выводит строку s, отцентрированную в прямоугольнике с координатами (x,y,x1,y1) |
procedure DrawTextCentered(x,y,x1,y1: integer; n: integer); Выводит целое значение n, отцентрированное в прямоугольнике с координатами (x,y,x1,y1) |
procedure DrawTextCentered(x,y,x1,y1: integer; r: real); Выводит вещественное значение r, отцентрированное в прямоугольнике с координатами (x,y,x1,y1) |
procedure FloodFill(x,y: integer; c: Color); Заливает область одного цвета цветом c, начиная с точки (x,y). |
как нарисовать прямоугольник делфи программироване графика уроки
Рисование в Pascal ABC (размеры окна, основные фигуры, заливка, текст, толщина и цвет линий)
Источник: pascalabc.net
Процедуры Rectangle и Bar.
Процедуры Rectangle и Bar используются в Паскаль для рисования прямоугольников. Их отличие друг от друга заключается в том, что процедура Rectangle рисует простой прямоугольник, а процедуры Bar рисует закрашенный прямоугольник.
Нарисуем прямоугольник с помощью обоих процедур.
Процедуры Rectangle и Bar.
Program Graphika10; Uses crt, Graph; var i:integer; Procedure Graphinterface; Var gd, gm, error:Integer; s:String; Begin gd:=detect; s:=’ ‘; Initgraph(gd,gm,s); error:=GraphResult; if error<>GrOk then begin writeln(GraphErrorMsg(Error)); Halt(error) end end; begin Graphinterface; SetLineStyle (3,0,3); Rectangle (100, 100,400,500); for i:=0 to 11 do begin SetFillStyle (i,3); bar (500, 100,900,500); delay(1000); end; readln; closegraph end.
Строка №3. В этой программе будет использоваться цикл, поэтому необходимо указать переменную для счетчика цикла.
Строка №4 — №17. Записываем процедуру для включения графического режима.
Строка №19. Включаем графический режим.
Строка №20. Записываем процедура SetLineStyle.
Строка №21. Процедура Rectangle рисует прямоугольник, координаты которого записываются в круглых скобках. Первые 2 значения определяют верхний левый угол прямоугольника (в нашем примере 100,100). Последние 2 значения определяют правый нижний угол (в нашем примере 400,500). Таким образом, у нас выведется прямоугольник, у которого стороны будут состоять из жирных пунктирных линий (благодаря процедуре SetLineStyle).
Строка №22. Записываем цикл.
Строка №24. Процедура SetFillStyle устанавливает тип закраски и ее цвет. Тип закраски и цвет записывается в круглых скобках (в нашем примере переменная «i» определяет тип закраски, а цвет закраски имеет значение 3 – зеленый).
Для процедуры SetFillStyle определены 13 различных типов закраски. Типы закраски и соответствующие им коды приведены в таблице.
Благодаря тому, что процедура SetFillStyle находится в цикле, переменная «i» поменяет свое значение 12 раз (от 0 до 11).
В строке №25 записываем процедуру Bar. Эта процедура выводит на экран прямоугольник, координаты которого даны в скобках. В нашем примере прямоугольник, полученный с помощью процедуры Bar, будет иметь координаты: 500,100 – верхний левый угол и 900,500 – правый нижний угол.
Строка №26. Процедура Delay задерживает выполнение программы на определенное время. В круглых скобках после записи процедуры Delay записывается время задержки. В нашем примере Delay (1000) означает задержку на одну секунду.
Строки №24, №25 и №26 находятся в цикле, поэтому на экран будет выведено 12 различных типов прямоугольников. У этих прямоугольников не будут меняться координаты, а лишь меняться заполнение прямоугольника с периодичностью один раз в секунду.
Источник: mojainformatika.ru
Глава 6. Графика в системе Турбо Паскаль Построение многоугольников Построение прямоугольников
Для построения прямоугольных фигур имеется несколько процедур. Первая из них – вычерчивание одномерного прямоугольника: Rectangle (x1, y1 , x2, y2:integer ), где x1, y1 – координаты левого верхнего угла, x2, y2- координаты правого нижнего угла прямоугольника. Область внутри прямоугольника не закрашена и совпадает по цвету с фоном.
Более эффектные для восприятия прямоугольники можно строить с помощью процедуры Bar (x1, y1 , x2, y2:integer), которая рисует закрашенный прямоугольник. Цвет закраски устанавливается с помощью SetFillStyle. Еще одна эффектная процедура: Bar3D (x1, y1 , x2,y2, d: integer, a:boolean) вычерчивает трехмерный закрашенный прямоугольник (параллелепипед).
При этом используются тип и цвет закраски, установленные с помощью SetFillStyle. Параметр d представляет собой число пикселей, задающих глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника ( d:= (x2 — x1) div 4 ). Параметр a определяет, строить над прямоугольником вершину (а:=True) или нет (a:=False).
Rectangle (200, 100, 250,300);
Построение многоугольников
Многоугольники можно рисовать самыми различными способами, например с помощью процедуры Line. Однако в Турбо Паскале имеется процедура DrawPoly, которая позволяет строить любые многоугольники линией текущего цвета, стиля и толщины. Она имеет формат DrawPoly( a: word, var PolyPoints)
Параметр PolyPoints является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр а задает число координат в PolyPoints. Необходимо помнить, что для вычерчивания замкнутой фигуры с N вершинами нужно передать при обращении к процедуре DrawPoly N+1 координату, где координата вершины с номером N будет равна координате вершины с номером 1.
Проиллюстрируем на примере:
var gd, gm: integer;
pp: array[1..4] of PointType;
xm, ym, xmaxD4, ymaxD4:word;
Initgraph(gd, gm, ‘ c/bp’);
Источник: studfile.net