
- •210100 "Управление и информатика в технических системах" и
- •1. Построение графиков функций и траекторий движения
- •1.3. Построение траекторий движения
- •2. Приемы создания динамичных графических образов.
- •2.1. Перерисовывание объекта.
- •2.2. Плавная модификация контурного изображения.
- •2.3. Мультипликация с запоминанием части экрана
- •2.4. Мультипликация с чередованием видеостраниц
- •2.5. Управление движением образа.
- •210100 "Управление и информатика в технических системах" и 210300 "Роботы и робототехнические системы"
Министерство общего и профессионального образования
Российской Федерации
Уфимский государственный авиационный технический университет
Кафедра технической кибернетики
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
для курсового проектирования
по курсу "Информатика"
для подготовки инженеров по специальностям
210100 "Управление и информатика в технических системах" и
210300 "Роботы и робототехнические системы"
Уфа 1996
Составитель: О.В. Трушин
УДК 681.3
Методические указания для курсового проектирования по курсу
"Информатика" для подготовки инженеров по специальностям
210100 "Управление и информатика в технических системах" и 210300 "Роботы и робототехнические системы"
/Уфимск. гос. авиац. техн. ун-т; Сост. О.В. Трушин. Уфа. 1996, - 39 с.
Приведены типовые задания для курсового проектирования с ориентацией на решение основных проблем при составлении и программировании вычислительных и демонстрационно-обучающих алгоритмов. Рассмотрен ряд методик и принципов создания программ с визуализацией, в том числе и динамической, перерабатываемой в программе информации. Приводимые алгоритмы реализованы на языке Turbo-Pascal_7 и могут быть легко адаптированы для других систем программирования.
Библ.: 14 наимен.
Рецензенты: А. Ю. Хасанов
М. Е. Сидоров
Содержание
Стр.
Общие сведения .......................................................................... 4
1. Построение графиков функций и траекторий движения .............. 6
1.1. Построение графика функции Y=F(X) с масштабированием
по осям координат ..................................................................... 6
1.2. Построение графика функции, заданной в параметрической
форме Y=FY( t), X=FX( t) ........................................................ 9
1.3. Построение траекторий движения ............................................. 9
Перечень тем курсового проектирования по разделу № 1 ......... 12
2. Приемы создания динамичных графических образов ................. 13
2.1. Перерисовывание объекта ........................................................ 13
2.2. Плавная модификация контурного изображения ..................... 14
2.3. Мультипликация с запоминанием части экрана ...................... 15
2.4. Мультипликация с чередованием видеостраниц ..................... 17
2.5. Управление движением образа ................................................. 18
Перечень тем курсового проектирования по разделу № 2 .......... 19
3. Численные методы в вычислительных расчетах ........................... 20
3.1. Численное решение уравнений .................................................. 20
3.2 Численный расчет интегралов ................................................... 21
3.3. Сортировка одномерных массивов ........................................... 22
Перечень тем курсового проектирования по разделу № 3 .......... 24
4. Аффинные преобразования координат при моделировании
динамики объектов ...................................................................... 25
Перечень тем курсового проектирования по разделу № 4 .......... 38
Список литературы ...................................................................... 39
Общие сведения
Предлагаемые в пособии задания ориентированы на освоение приемов и методов визуального отображения значимой информации, перерабатываемой в типовых программах. Графика применяется практически во всех серьезных программных разработках, так как позволяет отобразить сущность решаемой задачи и увидеть результаты расчетов в виде чертежей, графиков, иллюстраций в движении.
Приводимые ниже алгоритмы реализованы с использованием библиотеки графических функций Borland в среде Turbo-Pascal. Используются следующие типовые графические процедуры и функции:
InitGraph(Gd,Gm,'way') - переход к графическому режиму
(инициализация графики),
где Gd - имя графического драйвера,
Gm - номер графического режима монитора ,
'way' - дорожка DOS к файлам с графическими драйверами (*.bgi).
Обычно драйверы подключаются в режиме автоопределения используемого монитора ПК. Для этого перед инициализацией графики задается Gd:= Detect (или Gd:= 0). В этом случае по умолчанию устанавливается режим с наибольшим числом точек на экране, а значение параметра "Gm" игнорируется.
Номер наибольшего режима для текущего драйвера возвращает функция GetMaxMode. Изменить режим можно процедурой SetGraphMode(Gm). Экран при этом очищается.
Разрешающую способность для текущего графического режима можно определить функциями, возвращающими максимальные значения координат экрана:
GetMaxX - по оси Х; GetMaxY - по оси Y.
Для возврата из графического режима в текстовый можно использовать операторы:
CloseGraph - полное прекращение работы графической системы;
RestoreCrtMode - переключение в текстовый режим с возможностью
возврата к текущим установкам графического режима (оператором SetGraphMode).
Очистить графический экран можно процедурой ClearDevice (без изменения установленных параметров) либо GraphDefaults (устанавливаются параметры, принятые по умолчанию).
Процедуры рисования.
SetBkColor( N) - установить цвет N для пикселов фона.
SetColor( N) - установить цвет N для выводимых линий.
PutPixel(X, Y, N) - высветить цветом N пиксель с координатами X,Y.
GetPixel(X, Y) - определить цвет пиксела с координатами X, Y.
Circle(X,
Y, R) - окружность с центром
X, Y радиуса R.
Arc(X,Y, A1,A2, R) - дуга окружности.
Ellipse(X,Y, A1,A2, RX,RY) - сектор эллипса с полуосями RX,RY.
A1, A2 - начальный и конечный углы (в градусах), отсчитываемые против часовой стрелки относительно оси Х.
Line(X1,Y1, X2,Y2) - отрезок прямой от точки с координатами
X1,Y1 к
точке с координатами X2,Y2.
LineTo(X, Y) - отрезок прямой от текущего положения курсора
до точки X,Y.
LineRel(dX, dY) - отрезок прямой от текущего положения курсора
до точки, смещенной на расстояние dX,dY.
В отличие от процедуры Line процедуры LineTo и LineRel при своем исполнении перемещают текущий указатель. Перемещать курсор без рисования можно процедурами MoveTo(X, Y) и MoveRel(dX,dY). В графическом режиме курсор невидим, а его положение можно определить функциями, возвращающими значения координат: GetX - по оси Х, GetY - по оси Y.
Rectangle(X1,Y1, X2,Y2) - прямоугольник с левым верхним углом в
точке X1,Y1 и правым нижним углом в точке X2,Y2 (стороны параллельны краям экрана ).
Процедуры построения заполненных фигур
Граница заполняемых фигур рисуется текущим цветом для линий. Цвет N и стиль заполнения P (орнамент) можно устанавливать из стандартного набора BGI или определять самим процедурой SetFillStyle(P, N).
Bar(X1,Y1, X2,Y2) - прямоугольник;
Bar3d(X1,Y1, X2,Y2, d, t) - параллелепипед с заполненной передней гранью (координаты углов грани X1,Y1, X2,Y2) глубиной d. Переменная t типа boolean задает вывод верхней грани. При t=TopOn (true) верхняя грань показывается, при t=TopOff (false) - нет.
FillEllipse(X,Y, RX,RY) - заполненный эллипс;
Sector(X,Y,
A1,A2, RX,RY) - заполненный сектор эллипса;
PieSlice(X,Y,
A1,A2, R) - заполненный сектор круга.
FillPoly(N, M) - заполнить произвольную плоскую фигуру с границей, описанной массивом N точек границы.
М - параметр типа PointType ( Var M: array[1..N] of PointType).