- •1. Библиотечный модуль Graf
- •1.1. Характеристика графических режимов работы адаптера
- •1.2. Основные процедуры и функции графического модуля
- •Процедура CloseGraph
- •1.3. Изображение линий и точек
- •1.4. Изображение многоугольников
- •1.5. Изображение дуг, окружностей, эллипсов
- •1.6. Краски, Палитры, Заполнения
- •Процедура SetFillStyle
- •Процедура GetDefaultPalette
- •1.7. Вывод текста
- •Задает выравнивание выводимого по отношению к текущему положению указателя или к заданным координатам. Заголовок:
- •Процедура SetUserCharSize
- •Функция TextWidth
- •Функция TextHeight
- •1.8. Координаты. Окна. Страницы
- •Функции GetX и GetY
- •Процедура SetViewPort
- •Процедура SetActivePage
- •1.9. Сохранение и выдача изображений
- •2. Объектно-ориентированное программирование
- •2.1. Основные принципы ооп
- •2.2. Создание объектов
- •2.3. Наследование. Правила наследования
- •2.4. Виртуальные и динамические методы
- •2.5. Отличие виртуальных и динамических методов
- •2.6. Деструкторы
- •Список заданий выпускной квалификационной работы
- •Литература
1.4. Изображение многоугольников
Процедура Rectangle
Вычерчивает прямоугольник с указанными координатами углов.
Заголовок:
Procedure Rectangle (X1, Y1, X2, Y2: integer);
Здесь, X1 и Y1 – координаты левого верхнего угла прямоугольника; X2 и Y2 – координаты нижнего правого угла прямоугольника.
Прямоугольник вычерчивается с использованием текущего цвета и текущего стиля линий
Процедура DrawPoly
Вычерчивает произвольную ломаную линию, заданную координатами точек излома.
Заголовок:
Procedure DrawPoly (N: Word, Var Points);
Здесь, N – количество точек излома, включая обе крайние точки; Points – переменная типа PointType, содержащая координаты точек излома.
Координаты точек излома задаются парой значений типа Word: первое значение определяет горизонтальную координату, второе значение – вертикальную.
При работе с процедурой DrawPoly удобно использовать типизированные константы для задания точек излома.
Пример:
Изобразить в центре экрана пятиконечную звезду. Координаты точек излома и направление построения звезды имеют вид:
(300, 70)
(150,150) (450,150)
(200,300) (400,300)
Program DemoDrawPoly:
Uses CRT, Graph;
Tupe Cs =array [1..6, 1..2] of integer;
const ass:Cs = ((300, 70),
(200, 300),
(450, 150),
(150, 150),
400,300,
(300, 70));
Var
GrDriver, GrMode, x: integer;
Begin
GrDriver: =Detect;
InitGraph (GrDriver, GrMode, 'C: |Bp| BGI');
For x:=1 to 4 do
drawPoly (6, ass);
readln;
CloseGraph;
End.
Для задания точек излома можно использовать следующий определенный в модуле тип:
type PointType: record
x, y: word
end;
Пример:
Построить на экране правую ветвь параболы, направленную вверх.
Program DemoDrawPoly:
Uses CRT, Graph;
Var
GrDriver, GrMode, x: integer;
ass: array [1..100] of PointTupe;
Begin
GrDriver: =Detect;
InitGraph (GrDriver, GrMode, 'C: |Bp| BGI');
For x:=1 to 100 do
begin
ass [x]. x:= 10*x;
ass [x]. y:= 450-2*x*x;
end;
DrawPoly (100, ass);
readln;
CloseGraph;
End.
Необходимо отметить, что на количество точек излома накладываются ограничения, связанные с размером используемой буферной памяти. Обычно для небольших программ количество точек излома лежит в пределах 600-670 точек.
1.5. Изображение дуг, окружностей, эллипсов
Процедура Circle
Вычерчивает окружность.
Заголовок:
Procedure Circle (X, Y: integer, R: word);
Здесь, X и Y – координаты центра, R – радиус в пикселах.
Окружность выводится текущим цветом. Толщина линии, устанавливается текущим стилем, вид линии всегда SolidLn (сплошная). Процедура вычерчивает правильную окружность с учетом изменения линейного размера радиуса в зависимости от его направления относительно сторон графического экрана. В связи с этим параметр R определяет количество пиксел в горизонтальном направлении.
Процедура Arc
Чертит дугу окружности.
Заголовок:
Procedure Arc (X, Y: integer; Beg A, End A, R: word);
Здесь, X и Y – координаты центра; Beg A и End A – соответственно начальный и конечный углы дуги; R – радиус.
Углы отсчитываются против часовой стрелки и указываются в градусах. Нулевой угол соответствует горизонтальному направлению вектора слева направо. Если задать значения начального угла 0˚ и конечного – 359˚, то будет выведена полная окружность при вычерчивании дуги окружности используются те же соглашения относительно линий и радиуса, что и в процедуре Circle.
0˚-90˚ 270˚-450˚
Процедура Ellipse
Вычерчивает эллипсную дугу.
Заголовок:
Procedure Ellipse (X, Y: integer: Beg A, End A, RX, RY: word);
Здесь, X и Y – координаты центра; Beg A, End A, – соответственно начальный и конечный углы дуги; RX, RY – горизонтальный и вертикальный радиусы эллипса в пикселах.
При вычерчивании дуги эллипса используются те же соглашения относительно линий, что и в процедуре Circle, и те же соглашения относительно углов, что и процедуре Arc.
