Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится текст. Процедура Window задает окно, в котором будет выводиться текст.
program number4; uses crt; begin clrscr; Window (20,5,60,20); Textbackground (14); Textcolor (1); writeln(‘Это сообщение выводится синим цветом на желтом фоне’); readln end.
Строка №2. Подключаем к программе модуль Crt. Мы уже упоминали этот модуль, когда использовали процедуру очистки экрана Clrscr. Помимо этого данный модуль подключается к программе для управления способами вывода на экран. Он позволяет устанавливать курсор в нужную позицию на экране (gotoxy), устанавливать цвет фона (textbackground) и цвет выводимых символов (textcolor) и многое другое. В конце обязательно ставится точка с запятой.
Строка №5. Записываем процедуру Window. Эта процедура определяет, где на экране будет находиться текстовое окно. Window (x1, y1, x2, y2): (x1, y1) — координаты для верхнего левого угла окна. (x2,y2) – координаты для нижнего правого угла окна. Таким образом, запись Window (20,5,60,20) означает, что у нас задается окно. Его координаты: левый верхний угол (20,5) и нижний правый угол (60,20). Ниже дана простая схема.
Самый большой черный прямоугольник – это весь экран. В компиляторе Turbo Pascal ширина экрана равна 80 столбцам и 43 строкам (для Free Pascal — 80 столбцов и 38 строк). Красный прямоугольник внутри – это экран, определяемый процедурой Window (20,5,60,20). Самое главное здесь – запомнить, что координаты отмеряются с верхнего левого угла. Теперь все действия, которые будут производится в программе (например, вывод сообщения на экран) будут производится в этом окне.
В строке №6 записываем процедуру Textbackground, которая устанавливает цвет для фона, на котором будет выводиться текст. После записи слова Textbackground в скобках указывается значение. Мы указали значение 14. Это число соответствует желтому цвету в палитре цветов Паскаля. Ниже находится таблица, в которой указаны все 16 цветов, входящих в палитру цветов Паскаля.
В строке №7 записываем процедуру Textcolor. Эта процедура устанавливает цвет для выводимого на экран текста. После записи Textcolor в скобках записываем значение 1, что соответствует синему цвету.
Строка №8. Выводим на экран сообщение.
Теперь набрем программу в Паскале и запустим ее.
У нас выводится сообщение. Обратите внимание, что оно выводится не в начале экрана, а в начале невидимого экрана, определенного процедурой Window. Кроме того, сообщение выводится, синим цветом, на желтом фоне. Это действие Textbackground и Textcolor.
Дополнение к материалу.
CRT – английская аббревиатура, которая обозначает электронно-лучевую трубку. Таким образом, название модуля Crt подчеркивает, что он умеет управлять способами вывода на экран.
Цвета фона и текста в паскале
При изменении цвета текста или фона в паскале используются цвета , номера и названия которых вы можете найти в данной статье.
Разницы в использовании названий или кода нет. Однако я советую вам запомнить их коды и использовать их , так как в номер цветов сделать ошибку намного сложнее. Узнать еще о
оформлении текста в Паскаль можно здесь
А также бывают задачи , в которых главное — минимальность символов в коде. Тогда использование кода цвета намного лучше.
Решение
Можно просто писать, например
|
Можно прямо указать цвета
|
Таблица цветов
Код
0 Black, черный. 8 DarkGray, темно-серый.
1 Blue, синий. 9 LightBlue, ярко-синий.
2 Green, зеленый. 10 LightGreen, ярко-зеленый.
3 Cyan, голубой. 11 LightCyan, ярко-голубой.
4 Red, красный. 12 LightRed, ярко-красный.
5 Magenta, фиолетовый. 13 LightMagenta, ярко-фиолетовый.
6 Brown, коричневый. 14 Yellow, желтый.
7 LightGray, ярко-серый. 15 White, белый
[Всего голосов: 15 Средний: 3.5/5]
Работа с графикой в паскале
У компьютерного
монитора два режима работы – текстовый
и графический.
ПСЕВДОГРАФИКА
В ТЕКСТОВОМ РЕЖИМЕ
Минимальный
объект, отображаемый на экране в текстовом
режиме ‑ алфавитно-цифровой символ.
Разрешение экрана: 80 символов по
горизонтали и 25 по вертикали. Все основные
функции вывода текста на экран содержатся
в модуле Crt.
Основные функции и процедуры модуля Crt, используемые для работы с экраном
-
Управление цветом и фоном
Каждый
выводимый на экран символ может иметь
один из 16 возможных цветов от 0 (Black)
до 15 (White).
Фоном может один из 8 цветов от 0(Black)
до 7(LightGray).
Значения цветов могут задаваться как
константами, так и числовыми эквивалентами.
Полный список приведен в таблице 1.
Темные цвета |
Светлые цвета |
||
0 1 2 3 4 5 6 8 |
|
7 9 10 11 12 13 14 15 128 |
|
-
TextColor
(Color:
byte)
– установить выводимый цвет символов; -
TextBackGround
(Color:
byte)
– установить цвет фона
Чтобы
добавить при выводе эффект мерцания,
указывается константа Blink
(или 16). Мерцание будет поддерживаться
до тех пор, пока не произойдет установка
цвета выводимых символов без мерцания.
Пример.
TextColor(Yellow);
TextBackground(Brown);
Write(‘Желтые
буквы на коричневом фоне);
TextColor(5+Blink);
Write(‘Мерцающие
пурпурные буквы на коричневом фоне’);
-
Очистка экрана и управление строками на экране
-
ClrScr
– процедура очистки экрана или активного
окна. При очистке экран (окно) заполняется
цветом фона, установленным перед
формированием окна процедурой
TextBackGround.
После обращения к процедуре курсор
устанавливается в левый верхний угол
экрана (окна); -
ClrEol
– процедура стирания всех символов,
начиная с позиции курсора до конца
строки экрана или окна; -
DelLine
– процедура стирания строки, в которой
находится курсор, при этом строки
-
следующего за
стираемой строкой текста, поднимаются
на позицию вверх;
-
Управление яркостью
-
LowVideo –
-
NornVideo –
-
HighVideo –
-
Эти процедуры не
работают с некоторыми мониторами
-
Управление курсором
-
GoToXY(X,Y:
byte) – процедура перемещения курсора
в позицию X (столбец) и Y (строка); -
WhereX:
byte
и WhereY:
byte
– функции определения позиции X
или Y
координаты курсора.
-
Увеличить
или уменьшить курсор по сравнению со
стандартным размером, а также скрыть
курсор можно с помощью встроенной
функции AH=$01
прерывания $10 BIOS.
Применение этой функции показано в
примере (начинается со строки with
reg
do…).
Вызов функций прерывания BIOS
выполняется при подключении модуля
DOS.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
На чтение 4 мин. Опубликовано 16.12.2020
В Pascal ABC для работы с графикой отвечает модуль GraphABC. Для его подключения применяется следующий код:
usesGraphABC;
begin
…
end.
Система координат в Pascal соответствует экранной системе координат. Вот как она выглядит:
Как управлять цветом
Чтобы использовать цвет, нужно применять его инструменту перо:
Устанавливает цвет пера, который создает параметр color. | SetPenColor(color) |
Устанавливает цвет кисти, который задается параметром color. | setBrushColor(color) |
Для палитры RGB или для заливки. | SetPenColor(rgb(0-255, 0-255, 0-255)) |
Заливает область одного цвета, заданным color с точки (х, у). | FloodFill(x,y,color) |
Затем можно использовать процедуры для рисования различных геометрических фигур.
Основные процедуры (команды)
Номер цвета | Имя константы | Цвет |
0 | Black | Черный |
1 | Blue | Темно-синий |
2 | Green | Темно-зеленый |
3 | Cyan | Бирюзовый |
4 | Red | Красный |
5 | Magenta | Фиолетовый |
6 | Brown | Коричневый |
7 | LightGray | Светло-серый |
8 | DarkGray | Темно-серый |
9 | LightBlue | Синий |
10 | LightGreen | Светло — зеленый |
11 | LightCyan | Светло-бирюзовый |
12 | LightRed | Розовый |
13 | LightMagenta | Малиновый |
14 | Yellow | Желтый |
15 | White | Белый |
К примеру, цвет линий на экране можно задать следующим образом:
1 SetColor(14); // Будет желтый цвет
Установка цвета фона
Для того чтобы установить цвет фона всему экрану, применяется следующая процедура:
1 SetBkColor(14);
Внимание! Если она не вызвана, то экран будет черным.
Точки, отрезки и ломаные
В Pascal для отображения точки используется процедура:
SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
usesGraphABC;
begin
SetPixel(300,200,clred);
end.
Для рисования линии применяется:
Line(x1,y1,x2,y2) — рисует отрезок с началом (x1,y1) и концом в x2,y2
usesGraphABC;
begin
SetPenColor(clgreen);
line(100,50,500,250);
end.
Для рисования ломаных линий применяются следующие процедуры: MoveTo (x1, y1) и LineTo (x2, y2).
Процедуры работают вместе: MoveTo передвигает курсор в необходимую точку, а процедура LineTo рисует линию с данной точки до точки, определенной параметром этой процедуры.
usesGraphABC;
begin
…
SetPenColor(clblue);
MoveTo(x1, y1);
LineTo(x2, y2);
LineTo(x3, y3);
LineTo(x4, y4);
LineTo(x5, y5);
end.
Задание. Нарисовать квадрат и равносторонний треугольник с помощью SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1).
Для установки размеров графического окна применяется процедура
SetWindowSize(ширина, высота)
или, например:
SetWindowWidth(600);
SetWindowHeight(400);
Рисование фигур
Прямоугольник в Pascal рисуется:
Rectangle(x1,y1,x2,y2) — рисует прямоугольник с координатами противоположных вершин (x1,y1) и (x2,y2).
usesGraphABC;
begin
Rectangle(50,50,200,200);
end.
Фигуры с заливкой:
usesGraphABC;
begin
Rectangle(50,50,200,200);
FloodFill(100,100,clBlue);
end.
Треугольник рисуется процедурами:
Line(x1,y1,x2,y2);
LineTo(x,y);
usesGraphABC;
begin
setpenwidth(20);
setpencolor(clred);
moveTo(300,100);
lineTo(500,300);
lineto(100,300);
lineto(300,100);
floodfill(300,200,clgreen);
end.
Круг
С помощью данной процедуры можно нарисовать окружность:
Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
usesGraphABC;
begin
Circle(500,200,100);
FloodFill(500,200,clred);
end.
Дуга окружности
Arc(x,y,r,a1,a2) — позволяет нарисовать дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
usesGraphABC;
Begin
SetPenWidth(10);
Arc(300,250,150,45,135);
end.
Задача 1: «Лягушка»
Задача 2: «Корона»
Функция random для использования окраски
SetPenColor (rgb(random(256), random(256), random(256))); — выбирает рандомное число из 256-цветной палитры для цветов: красного, зеленого и синего.
Задача 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.
* круги должны быть раскрашены случайным цветом.
Задача 4: «Круги на воде».
Условие: Нарисуйте несколько десятков концентрических окружностей (окружностей разного радиуса с общим центром).
Задача 5: Воспроизвести изображение с помощью приложения:
Штриховка
Нарисовать штриховку на Pascal можно, применяя процедуры рисования прямоугольника и линии:
В результате получится следующий код:
usesgraphABC;
var i, x1, x2, y1, y2, N:integer;
h, x:real;
begin
x1 :=100; y1 :=100;
x2 :=300; y2 :=200;
N :=10;
Rectangle(x1, y1, x2, y2);
h :=(x2 — x1)/(N +1);
x := x1 + h;
for i:=1to N dobegin
Line(round(x), y1,round(x), y2);
x := x + h;
end;
end.
Анимация в Паскале
Анимация в Pascalсостоит в том, что первым рисуется фигура цветным инструментом, после чего с такими же координатами рисуется та же фигура белым цветом. Затем происходит сдвиг фигуры. И так действия повторяются.
Воспроизвести движение круга по горизонтали. Пример:
usesGraphABC;
var x:integer;
begin
x:=40;
repeat
SetPenColor(clWhite);
Circle(x,100,10); {Рисуем белую окружность}
SetPenColor(clBlack);
Circle(x,100,10); {Рисуем черную окружность}
x:=x+1 {Перемещаемся немного направо}
until x>600;
end.
Задача 6: Создать анимацию движения квадрата по заданной траектории:
А как у вас обстоят дела с графикой в Pascal? Поделитесь своим опытом, оставив комментарий.