Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Program ug;
uses graph, crt;
var gr, gm: integer;
Begin
gr:=detect; {номер драйвера}
gm:=0; {номер режима}
initgraph (gr, gm, ‘’);
readkey; {ожидание нажатия клавиши для закрытия}
closegraph;
End.

В графическом режиме экран представляет собой мозаику точек, каждая из которых может быть окрашена в тот или иной цвет. Точка в левом верхнем углу экрана имеет нулевые координаты (0, 0). С помощью программ, по-разному окрашивая точки, вы можете формировать геометрические фигуры, рисовать диаграммы и графики функций, красочные картинки (пейзажи, людей, животных) и так далее. Комбинируя программными средствами смену цветов на экране, можно создавать различные визуальные эффекты – от нарядного калейдоскопа до имитации движения предметов.
В режиме 640x480 экран состоит из 480 строк по 640 точек в каждой строке. Координаты каждой точки задаются парой целых чисел, обычно обозначаемых Х и Y, которые определяются проекциями отрезка, соединяющего эту точку с левым верхним углом экрана, на горизонтальную и вертикальную оси соответственно. Точка в левом верхнем углу экрана имеет нулевые координаты. Положительному значению Х соответствует направление слева направо, Y – сверху вниз. В графическом режиме (как и в текстовом) имеют место понятия «графический курсор» и «текущая позиция курсора», однако сам курсор не виден, и эти понятия используются лишь в описании графических команд. Изначально, после инициализации графического режима, текущая позиция курсора – левый верхний угол, то есть точка с координатами (0, 0). Ее перемещение в точку с координатами (х, y) осуществляется процедурой:
MoveTo (х, y);
Кроме координат, точки на экране характеризуются цветом. Мы можем работать одновременно с 16 цветами, причем каждый цвет обозначен номером от 0 до 15 (см. таблицу).
Номер | Цвет |
0 | черный |
1 | синий |
2 | зеленый |
3 | голубой |
4 | красный |
5 | фиолетовый |
6 | коричневый |
7 | светло серый |
8 | темно серый |
9 | ярко синий |
10 | ярко зеленый |
11 | ярко голубой |
12 | розовый |
13 | малиновый |
14 | желтый |
15 | белый |
После команды установки режима обычно дается команда установки цвета:
SetColor (С);
здесь С – номер цвета, который может являться целой переменной или константой, имеющей значение от 0 до 15, и задаваться либо именем, либо непосредственно значением.
Особенностью графического режима является использование цвета с номером 0, который является фоновым, вне зависимости от того, какой именно цвет имеет фон. В результате, если установлен цвет 0, то все объекты этого цвета не будут видны на экране, но при этом сотрут изображение в том месте, куда выводятся. То есть на экран вообще ничего нельзя вывести черным цветом, надо вместо него использовать темно-серый.
Цветом фона в графическом режиме называется область экрана, на которую еще не выводилось изображение. При смене фона результат отображается на экране немедленно. Для изменения цвета фона используется процедура:
SetBkColor (Номер цвета);
Основные процедуры графического режима
Отдельный пиксель можно закрасить заданным цветом командой графического режима:
PutPixel (х, у, С)
где х, у – координаты точки (в пикселях), с – номер цвета точки.
Все параметры данной процедуры должны быть целочисленными переменными или константами. Теоретически с помощью этой команды можно нарисовать любое графическое изображение. Обязательными элементами любого языка программирования, работающего с графикой, являются инструменты рисования стандартных объектов, которые часто называют графическими примитивами. Комбинируя эти средства с такой процедурой, как PutPixel, вы сможете рисовать довольно сложные и красочные изображения.
Рассмотрим процедуры создания графических примитивов.
1. Для вывода на экран отрезка с концами в точках (x1, y1) и (х2, y2) используется процедура:
LINE (x1,y1,x2,y2);
Отрезок вычерчивается текущим цветом.
2. Для вывода на экран прямоугольника с вертикальными и горизонтальными сторонами (параллельными осям координат) в виде контура используется процедура:
RECTANGLE (x1, y1, x2, y2);
Точки с координатами (x1, y1) и (х2, y2) располагаются в левом верхнем и правом нижнем углах прямоугольника. Прямоугольник вычерчивается текущим цветом.
3. Для вывода на экран закрашенного прямоугольника используется процедура:
BAR (x1, y1, x2, y2);
Прямоугольник закрашивается текущим цветом.
4. Вывод окружности с центром в точке (х, y) и радиусом r на экран выполняется процедурой:
CIRCLE (x, y, r);
Окружность будет изображена текущим цветом.
5. Для построения эллипса используется процедура: ELLIPSE(x, y, l1, l2, xr, yr), где
(x, y) – координаты центра эллипса; l1, l2 – начальное и конечное значение угла (в радианах) для вычерчивания дуги эллипса; xr, yr – горизонтальный и вертикальный радиусы эллипса
6. Процедура ARC(x, y, l1, l2, r) позволяет строить дугу окружности с центром в точке (x, y), радиуса r, от угла l1 до угла l2.
Если координаты изображения или его части не попадают в тот промежуток координат, который соответствует экрану, то программа не приостановит свою работу и сообщение об ошибке не будет выдано. Просто не вошедшие в экран точки не будут изображены.
Дополнительные процедуры
1. ClearDevice – очистка экрана
2. OutTextXY(x, y, <текст>) – вывод текстовой строки, начиная с точки (x, y).
3. Для закрашивания замкнутого контура сплошным цветом используются две процедуры:
- SetFillStyle(1, <номер цвета>) – устанавливает цвет заливки
- FloodFill(x, y, c) – заливка замкнутого контура, где (x, y) – координаты точки внутри контура, с – номер основного цвета (должен соответствовать цвету процедуры SetColor).
Рассмотрим типовые задачи графического режима.
Пример 1. Построить 15 концентрических окружностей одного цвета.
Program konc_okr;
uses graph, crt;
var gr, gm, i: integer;
Begin
gr:=detect;
gm:=0;
initgraph (gr, gm, ‘’);
setcolor(4);
for i:=1 to 15 do
circle(320,240,10*i);
readkey;
closegraph;
End.
Задание: изменить пример 1, так чтобы
а) цвет окружностей был различным;
б) каждая окружность закрашивалась;
в) радиусы окружностей изменялись неодинаково.
Пример 2. Построить прямоугольник с диагональю. Обозначить вершины прямоугольника и подписать его.
Program rect;
uses graph, crt;
var gr, gm, i:integer;
Begin
gr:=detect;gm:=0;
initgraph(gr, gm,'');
setcolor(15);
rectangle(100,100,300,200);
line(100,100,300,200);
setcolor(5); {обозначения будем делать другим цветом}
outtextxy(90,90,'a');outtextxy(305,90,'b');
outtextxy(305,205,'c');outtextxy(90,205,'d');
outtextxy(140,220,'прямоугольник «abcd»');
readkey;
closegraph;
End.
Задание: выполнить аналогичные построения для:
а) окружности;
б) квадрата;
в) параллелограмма;
г) эллипса (подписать оба радиуса).
Пример 3. Окружность, движущаяся вдоль горизонтальной прямой.
Program move_circle;
uses graph, crt;
var gr, gm, i:integer;
Begin
gr:=detect;gm:=0;
initgraph(gr, gm,'');
setcolor(5);
for i:=1 to 400 do
begin
circle(50+i,200,100);
delay(2000); {задержка (в миллисекундах)}
cleardevice;
end;
readkey;
closegraph;
End.
Задание: осуществите движение окружности
а) вдоль вертикальной прямой;
б) из правого верхнего угла в левый нижний;
в) вдоль синусоиды.
Вопросы
1. Охарактеризуйте работу монитора в графическом режиме.
2. Каковы основные параметры графического режима, приведите примеры.
3. Что означает выражение "разрешающая способность"?
4. Что такое инициализация графического режима и как она выполняется?
5. Как выполняются построения в графическом режиме?
6. Как установить цвета фона и цвет рисования?
7. Какой оператор является универсальным и почему?
8. Что такое «графические примитивы»?
9. Опишите основные процедуры создания графических примитивов.
10. Как можно закрасить замкнутый контур?
11. Какая процедура позволяет делать текстовые надписи на изображениях?
Задания
1. Постройте треугольник с произвольными сторонами, обозначьте его вершины.
2. Построить на экране различные варианты расположения
а) окружности и прямой
б) двух окружностей.
Сделать соответствующие обозначения.
3. Построить на экране произвольный угол, обозначьте его вершину, дополните угол биссектрисой
4. Постройте два эллипса: сжатый к оси ОХ и сжатый к оси ОУ.
5. Построить ромб с произвольными сторонами, провести диагонали ромба, обозначьте его вершины.
6. Постройте узор из нескольких повторяющихся геометрических фигур разного цвета.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |


