Графика
Цель работы: знакомство с графическими процедурами и функциями.
Пример: Пусть необходимо построить график циклоиды. Зададим ее матема-тическое описание:
x = a t - b sin t, y = a - b cos t,
при b<a циклоида получается укороченной, при b>a - удлиненной, b = a дает обычную циклоиду.
При разработке программы необходимо перед выводом графической информации на экран дисплея инициализировать графический режим с указанием пути к графическому драйверу, а в конце программы его следует закрыть.
Поскольку в графическом режиме работы дисплея верхняя левая точка экрана имеет координаты (0,0), сместим ось 0Х на середину экрана, а ось 0У - на 10 пикселей вправо. Для наглядности увеличим график путем использования масштабных коэффициентов по каждой оси координат. Кроме того, нужно помнить, что координаты точки в графическом режиме могут быть только целого типа.
С учетом вышесказанного программа построения циклоиды имеет вид
program graph17pr;
uses graph; {подключение модуля GRAPH}
var
a,b,t:integer; {a, b - переменные, определяющие a - тип драйвера и }
x,y,tt:real; {b - видеорежим }
begin
detectgraph(a,b); {автоопределение типа драйвера и видеорежима}
initgraph(a,b,'c:\progDOS\BP\BGI'); {инициализация графического режима}
setgraphmode(2); {установка нового режима (2), очистка экрана}
setBKcolor(0); {основной цвет фона – черный}
setcolor(4); {основной цвет рисования – красный}
moveTO(0,240); {смещает курсор для вычерчивания оси Х}
lineRel(625,0); {вычерчивание линии по приращению от указателя}
readln; {пауза до нажатия клавиши <Enter>}
setcolor(2); {основной цвет рисования – зеленый}
line(10,0,10,478); {рисует линию от точки (Х1,Х2) до т.(Х2,У2)}
readln; {пауза до нажатия <Enter>}
setcolor(5); {основной цвет рисования – фиолетовый}
readln; {пауза до нажатия клавиши <Enter>}
moveTO(10,240); {смещение курсора к точке с кординатой (0,240)}
tt:=0.0;
for t:=1 to 200 do {расчет и вычерчивание циклоиды}
begin
x:= 0.4*tt - 0.5*sin(tt);
y:= 0.4 - 0.5*cos(tt);
{линия} lineTO(trunc(100*x)+10,trunc(100*y)+240);
tt:=tt+Pi/32
end;
readln; {пауза до нажатия клавиши <Enter>}
SettextStyle(0,0,3); {установка шрифта(0..4), стиля, размера текста} OutTextXY(50,440,'график циклоиды'); {выводит текст от т.(50,440)}
readln; {пауза до нажатия клавиши <Enter>}
closegraph; {закрывает графический режим и восстанавливает текстовый} end.
Поскольку вычисляемые в программе координаты являются вещественными, то для их преобразования к целым значениям использована функция TRUNC().
При разработке графических программ необходимо следить, чтобы значения координат не выходили за пределы экрана. Для этого рекомендуется рассчитывать коэффициенты увеличения или уменьшения, а также параметры смещения изображения.
Задание 1 (программа 16_1)
Начертить графики функций F1(x) и F2(x) для результатов, полученных в программе 3_2.pas. На экран должен выводиться график с надписью выводимой функции.
Задание 2 (программа 16_2)
Напишите и отладьте программу для одной следующих задач.
1. Подготовить и отладить программу вычерчивания квадрата, вписанного в окружность. Запрограммировать изменение цветов окружности.
2. Организовать вывод на экран разноцветных цифр поочередно горизонтально и вертикально.
3. Отладить программу вычерчивания нескольких окружностей заданного радиуса в произвольном месте экрана разными цветами. Предусмотреть их мерцание.
4. Разработать программу изображения точки, движущейся по косинусоиде (y = =cos(x)).
5. Отладить программу рисования квадрата с диагоналями, пресекающимися в центре экрана. Создать иллюзию его уменьшения.
6. Начертить на экране картинку «круги на воде».
7. Изобразить движущийся на зрителя экран (прямоугольник).
8. Подготовить и отладить программу изображения правильного треугольника, вращающегося вокруг своей (любой) медианы.
9. Разработать программу вывода на экран компьютера пяти квадратов по углам и в середине экрана. Запрограммировать поочередный вывод их разными цветами.
10. Разными цветами в различных точках экрана выводить надпись «TurboPascal» с изменением размера шрифта.
11. Изобразить трубу, образованную разноцветными окружностями.
12. Организовать вывод на экран названия континентов разными цветами в различных точках экрана готическим и обычным шрифтами.
13. Изобразить спутник (точку), вращающийся вокруг планеты.
14. Изобразить НЛО, приземляющийся в различных точках экрана.
15. Организовать вывод на экран разноцветных русских букв разных размеров поочередно высвечивая или заполняя экран в хаотическом порядке.
16. Отладить программу вычерчивания графиков функций y = sin(x) и y = =sin(2x) разными цветами с разными осями координат.
17. Организовать вывод на экран формул химических элементов разными цветами в различных точках экрана.
18. Начертить на экране ряд геометрических фигур: квадрат, круг, треуголь-ник, прямоугольник, используя разные цвета.
19. Изобразить схематично на экране движущегося человечка.
20. Изобразить движение объекта по прямоугольной спирали.
- 2Федеральное агентство по образованию
- Алгоритмизация и программирование
- Основы программирования в среде Турбо Паскаля.
- Приоритет операций в выражении
- Задание 1 (программа 1_1)
- Программирование разветвленных алгоритмов. Операторы передачи управления
- Программирование циклических алгоритмов с заданным числом повторений
- Программирование циклических алгоритмов с предусловием
- Программирование циклических алгоритмов с постусловием
- Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- Программирование алгоритмов обработки одномерных массивов
- Задание 1
- Программирование с использованием функций
- Программирование с использованием процедур
- Лабораторная работа 10 Обработка символьных и строковых данных
- Множества
- Первая и вторая цифры размерность исходных множеств.
- Модульное программирование
- Динамические структуры данных. Списки
- Задание 1 (программа 15_1)
- Графика
- Задания к расчетно-графической работе
- Порядок выполнения лабораторных работ
- Обозначения графические в схемах алгоритмов (гост 19.701-90)
- Сообщение об ошибках Сообщения об ошибках периода компиляции
- Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- Ошибки вода - вывода
- Критические ошибки