Построение фигур

  • docx
  • 30.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л3-00096.docx

Построение фигур

Почти во всех приведенных ниже процедурах цвет, толнщина, стили линий и заполнения назначаются с помощью процедур из пункта 3.11.5 или устанавливаются по умолнчанию.

I. Процедура putpixel выводит заданным цветом точку в указанные координаты х, у.

Формат обращения: putpixel(x,y,4BeT);

где х, у Ч выражения типа integer, определяющие коорндинаты по горизонтали и вертикали; цвет Ч выражение типа word, определяющее цвет.

Координаты задаются относительно левого верхнего угнла окна (0,0) или, если окно не установлено, относинтельно левого верхнего угла экрана.

II. Процедуры linelinetolinerel вычерчивают линию. Формат обращения:

1) Iine(x1,y1,x2,y2);

где х1,у1,х2,у2 Ч выражения типа integer, задающие координаты начала (х1,у1) и конца (х2,у2) линии;

2) Iineto(x2,y2);

где х2,у2 Ч выражения типа integer, задающие конординаты конца линии; начальное положение линии определяет точка с текущими координатами;

3) linerel(dx,dy);

где dx,dy Ч выражения типа integer, задающие принращение конца линии от текущих координат.

III. Для назначения текущих координат используются процендуры mo vet о и moverel.

Формат обращения:

1)  moveto(x1,y1);

где х1 ,у1 Ч выражения типа integer, задающие конординаты текущей точки экрана;

2)  moverel(dx,dy);

где dx ,dy Ч выражения типа integer, задающие принращение координат текущей точки от предыдущего положения.

IV. Процедуры rectangle и bar вычерчивают прямоугольник. Формат обращения: rectangle(x1,y1,x2,y2); bаr(х1,у1,х2,у2); где х1,у1,х2,у2 Ч выражения типа integer, задающие конординаты левого верхнего (х1,у1) и правого нижнего (х2,у2) углов прямоугольника.

Прямоугольник, построенный процедурой bar, заполнянется текущим цветом и стилем.

V. Процедура barSd вычерчивает трехмерное изображение параллелепипеда и закрашивает его переднюю грань.

Формат обращения: bar3d(x1,y1,x2,y2,z,pr);

где х1,у1,х2,у2 Ч выражения типа integer, задающие конординаты левого верхнего (х1,у1) и правого нижнего (х2,у2) углов передней грани; z Ч выражение типа inteнger, задающее третье измерение изображения; рr Ч вынражение типа boolean, определяющее способ изображенния верхней грани.

Если параметр рr имеет значение true, верхняя грань параллелепипеда вычерчивается, в противном случае не вычерчивается (этот вариант используется для изобранжения поставленных друг на друга параллелепипедов). В качестве значения параметра рr может использоватьнся одна из следующих констант, определенных в модунле graphconst topon = truetopoff = false;

VI. Процедуры drawpolyfillpoly вычерчивают произвольнную ломаную линию или многоугольник.

Формат обращения:

drawpoly(n,массив координат);

fillpoly(n,массив координат);

где п Ч выражение типа word, задающее количество вершин (ломаная, состоящая из пяти отрезков, отличанется от пятиугольника тем, что в первой Ч пять вершин, во втором Ч шесть, при этом координаты первой и шенстой вершин совпадают); массив координат должен быть объявлен с типом элементов pointtype; этот тип определен в модуле как

type pointtype = record x,y:word end;

т. е. координаты вершин задаются парой значений типа word: первое определяет горизонтальную, второе Ч вертикальную координату.

fillpoly может использоваться для построения только многоугольников, так как они заполняются текущим цвентом и стилем.

VII. Процедура circle вычерчивает окружность. Формат обращения: circle(x,y,r);

где х,у Ч выражения типа integer, задающие координаты центра;

r Ч выражение типа word, задающее радиус.

VIII. Процедуры arcpieslice вычерчивают дугу или сектор окружности.

Формат обращения:

аrс(х,у,нач.угол,кон.угол,г);

рieslice(х,у,нач.угол,кон.угол,r);

где х, у Ч выражения типа integer, указывающие координнаты центра; нач.угол, кон.угол Ч выражения типа word, задающие начальный и конечный углы дуги (arc) или сектора (pieslice), углы отсчитываются против часовой стрелки и указываются в градусах; r Ч выражение типа word, задающее радиус.

Построенный сектор заполняется текущим цветом и стинлем.

IX. Процедуры ellipsefillellipsesector вычерчивают эллипсную дугу, эллипс или его сектор.

Формат обращения:

ellipse (х,у,нач.угол,кон.угол,rx,ry);

fillellipse (x,y,rx,ry);

sector (x,у,нач.угол,кон.угол,rx,ry);

где х,у, нач.угол, кон.угол Ч см. пояснения к VIIIrxry Ч выражения типа word, определяющие горизонтальный и вертикальный радиусы эллипса.

Эллипс, построенный процедурой fillellips, или его секнтор (sector) заполняется текущим цветом и стилем.

X. Процедура floodfill закрашивает текущим цветом и стинлем произвольную замкнутую фигуру.

Формат обращения:

 floodfill(x,y^BeT границы); где х,у Ч выражения типа integer; координаты любой точки внутри замкнутой фигуры; цвет границы Ч выранжения типа word, задает цвет граничной линии. Если фигура не замкнута или неверно задан цвет гранинцы, закраска разольется по всему экрану.