еліпс і дуга.
Точка. Використовується PutPixel(x,y: integer;pixel:word)
Лінія. Для задання лінії використовують такі процедури line, lineto, linerel
Line(x1,y1,x2,y2:integer), x1,y1- початкові координати а x2,y2 – кінцеві.
Дія. Малює лінію встановленим кольором від точки(x1,y1) до точки (x2,y2).
LineTo(X,Y:integer). Малює лінію активним кольором від положення графічного курсора до точки (X,Y).
LineRel(Dx,Dy:integer). Dx,Dy- відносні координати. Малює лінію активним кольором від положення графічного курсора до т.(Get X+Dx,Get Y+Dy).
Прямокутник. Для побудови прямокутника встановленим кольором вокористовується Rectangle(x1,y1,x2,y2:integer). X1,y1 – координати верхнього лівого кута прямокутника, а x2,y2 – нижнього правого кута.
Коло. Для задання активним кольором використовується Circle(x1,y1:integer; radius:word).
32. Найпростіші графічні примітиви: дуга кола, еліптична дуга, лінія.
Графічна бібліотека Graph містить ряд процедур для виведеня графічних примітивів(фігур) на екран а саме таких як точка, лінія, прямокутник, коло, еліпс і дуга.
Дуга кола. Для побудови активним кольором використовують процедуру
Arc(x,y:integer; stAngle, EndAngle, radius:word); x,y- координати центра кола
stAngll, EndAngll – початкове і кінцеве значення кута в градусах, radius – радіус кола.
Еліптична дуга. Для побудови використовують п-ру Ellipse(x,y:integer; stAngle, EndAngle, stradius, endradius:word),
X,y – координати центра еліпса, stradius, endradius – горизонтальні і вертикальні півосі еліпса.
Лінія. Для задання лінії використовують такі процедури line, lineto, linerel
Line(x1,y1,x2,y2:integer), x1,y1- початкові координати а x2,y2 – кінцеві.
Дія. Малює лінію встановленим кольором від точки(x1,y1) до точки (x2,y2).
LineTo(X,Y:integer). Малює лінію активним кольором від положення графічного курсора до точки (X,Y).
LineRel(Dx,Dy:integer). Dx,Dy- відносні координати. Малює лінію активним кольором від положення графічного курсора до т.(Get X+Dx,Get Y+Dy).
Типии ліній. При побудові графічних обєктів користувач може визначати тип ліній а сааме її стиль, товщину, тощо.
Тип ліній можна задати процедурою SetlineStyle(linestyle:word, pattern:word; tucknes:word), linestyle – константа, що задає стиль лінії.
Pattern – бітова маска, що використовується для побудови лінії при використанні стилю заданого користувачем. Даний параметр при заданні стандартних стилів не використовується. Під бітовою маскою розуміють десяткове або 16-кове задання числа pattern якому ставиться у відповідність 16—бітне двійкове значення.
Turknes – товщина лінії. При чому існують дві константи для її задання а саме normWidth – значення 1.
ThickWidth – значення 3. Примітка. При ініціалізація графічного режиму встановлюються параметри лінії, що відповідають процедурі setlinestyle(solidln,0,normwidth) – будує лінії різного стилю.
Для визначення встановлених на даний момент параметрів лінії використовують setlinesettings(var lineinfo: linesettingsType)
LineInfo – змінна типу описана в графічній бібліотеці, формат якого
Linesettingstype=record
Linestyle:word;
Pattern:word;
tuckNess: word;
end.
Тут всі поля відповідають параметрам процедури setlinestyle.
33. Прості замальовані примітиви: прямокутник, еліпс, сектор круга і еліптичний сектор.
Засобами ТР можна безпосередньо побудувати ряд обмежених замальованих областей, зокрема таких як прямокутник, еліпс, сектор круга, еліптичний сектор.
Перед побудовою даних областей користувач повинен задати параметри замальовування а саме стиль і колір.
Задання параметрів замальовування здійснюється п-рою setfilestyle(pattern:word; color:word);
Pattern – стиль замальовування який задається рядом констант.
При використанні стилю заданого користувачем бітова маска, яка задається процедурою setfilepattern(pattern: fillpatterntype; color: word);
Fillpatterntype = array[1..8] of byte; pattern – бітова маска, змінна типу
Fillpatterntype – визначено в графічній бібліотеці як масив з 8.
Дана бітова маска задає шаблон замальований розміром 8х8 пікселів, кожен рядок якого описується 10-м або 16-м числом якому відповідає двійкове значення.
Даний шаблон в розділі констант, може бути висунутий так
Const
Myfill=fillpatterntype($88,$44,…,$88,$44)
Для побудови замальованого прямокутника без окантовки з встановленими параметрами використовують процедуру bar(x1,y1,x2,y2:integer)
При побудові звичайного n-кутника можна будувати тривимірний замальований прямокутник, тобто прямокутний паралелепіпед процедурою.
Bar3D(x1,y1,x2,y2:integer; Dept:word; Toop: boolean)
Dept - глибина паралелепіпеда в пікселях
Toop – логічна змінна яка відображає при значення істино верхню основу і праву сторону паралелепіпеда а при значенні хибно тільки праву сторону.
Замальовоний еліпс. Для його побудови поточним кольором із окантовкою використовують процедуру fillellipse(x,y:integer; xradius,yradius:word)
X,y- координати центра еліпса
Xradius, yradius – горизонтальні і вертикальні осі еліпса
Сектор круга і еліптичний сектор. Для побудови сектора круга використовують процедуру Pieslise(x,y:integer;STAndle, EndAngle, Radius: word). Для побудови еліптичного сектора Sector(x,y:integer, STAndle, EndAngle, XRadius, YRadius: word). Замальовування довільної обмеженої області. Для задання таких областей використовують процедуру
FloodFill(x,y: integer; border: word)
Border – колір межі даної області.
34. Ламані і многокутники, щамальований многокутник.
Ламані та многокутники.
Будь-яку ламану можна задати, як сукупністю відрізків із спільними вершинами. Однак ТР містить процедуру Drawpoly, яка дозволяє безпосередньо будувати ламану заданим стилем і кольором.
Drawpoly (NumPoints: word; var PolyPoints);
NumPoints – кількість вершин ламаної
PolyPoints – одновимірний масив елементів, кожен з яких є записом пари координат, а саме
PolyPoints: array [1..NumPoints] of PointType, де PoitnType = record з полями
x,y: integer;
end;
Програма (побудова ламаної з 4 вершинами)
Program Polygon;
uses Graph;
const
Poly: array [1..4] of PointType =((x:50,y:100),(x:100,y:150),(x:150,y:250),(x:250,y:200));
var
Gd, Gm: Integer;
begin
Gd := Detect;
InitGraph (Gd, Gm,’’);
DrawPoly (4,Poly);
Readln;
CloseGraph;
End.
В даній програмі для опису ламаної використана типізована константа, тобто змінна певного типу, якій надається деяке значення до початку виконання програми.
Многокутники.
Для побудови многокутника використовують ламану, в якої координати першої і останньої вершини співпадають.
Використовується процедура FillPoly (NumPoints: word; var PolyPoints);
Програма побудови многокутника.
Program Fillpolygon;
Uses Graph;
const
Poly:array [1..5] of PointType =((x:20,y:100),(x:100,y:250),(x:150,y:180),(x:200,y:190), (x:20,y:100)),
Var
Gd, Gm: integer;
begin
Gd := Detect;
InitGraph (Gd,Gm,’’);
SetLineStyle (DashedLn, Green,1);
SetFillStyle (HatchFill, Red);
FillPoly (5, Poly);
Readln;
CloseGraph; end.
35.Використання графічного тексту.
Для задання і виведення тексту на екран символами в графічному режимі використовують OutText (TextString: string)
OutTextXY(x,y: integer; TextString: string);
Дані процедури виводять текст, починаючи з положення графічного курсору
Програма:
Program MyText;
uses Graph;
var Gd, Gm: integer;
begin
Gd := Detect;
InitGraph (Gd, Gm,’’);
MoveTo (50, 50); OutText (‘Початок тексту’);
Readln;
OutText (‘Продовження тексту з позиції курсору ’);
Readln;
OutTextXY (150, 100,’Вивід тексту з точки (150, 100)’);
Readln;
CloseGraph;
end.
Задання стилю графічних символів SetTextStyle (Font, Direction: word; CharSize: word);
Font –Константа, або її значення, що беруть з таблиці. Direction –напрям виведення тексту. CharSize – множник для збільшення символів (1–норм. 2–подв.).
Якщо CahrSize=0 (=UsesCharSize, тобто константа описана в модулі Graph), то