Главная » Учебные материалы » Инженерная графика » Книги » РТУ МИРЭА » 4 семестр » Компьютерная графика, методичка №2
Для студентов РТУ МИРЭА по предмету Инженерная графикаКомпьютерная графика, методичка №2Компьютерная графика, методичка №2 2017-07-12СтудИзба

Книга: Компьютерная графика, методичка №2

Описание

Описание файла отсутствует

Характеристики книги

Учебное заведение
Семестр
Просмотров
134
Скачиваний
4
Размер
7,2 Mb

Список файлов

img354 коррекция

Распознанный текст из изображения:

-2-

ЦЕЛЬ РАБОТЫ: Освоить работу с двумерными преобразованиями координат.

ЗАДАЧА: создать программу, формирующую заданное динамическое изображение. Преобразования координат должны выполняться

1. Преобразование координат на плоскости Из всех возможных линейных преобразований координат особую роль играют четыре

следующих частных случая, с помощью которых можно описать любое преобразование или

движение объекта на плоскости:

1. Поворот вокруг начала координат на угол <р..Если ~р > О, то поворот совершается против

часовой стрелки, если <р < О, то — по часовой.

И. Растяжение (сжатие) Вдоль координатных Осеи, Если Й„й <1, то происходит сжатие. Если

й„Ж, >1, то происходит растяжение. Если й, = й,, то происходит пропорциональное изменение

линейных размеров объекта.

(1.2)

Рис. 2. Растяжение

прямоугольника при

сов(р) яп(р) О

[А1 = — яп(р) сов(р) О

О 0 1

А„О 0

и=о ~,о

О 0 1

Рис. 1. Поворот

на угол (р вокруг

начала координат

img355 коррекция

Распознанный текст из изображения:

Ш. Отражение (может выполняться относительно начала координат и координатных осей).

+1 0 0 ~М1= О +1 О ~1.З1 О 0 1 Рнс. 3. Отражение относительно осн абсцисс 1У. Параллельный перенос

1 О О И=О 1 О ~Й йу 1 Рнс. 4. Перенос при 4Ьъ-"1ф Если А — обычная ~собственная) точка плоскости с координатами х и у, то ее однородными координатами можно назвать любую тройку чисел~,"„~,, ~,) „связанных с х и у следующими соотношениями: — =х, — =у,с~~ ФО. 41 ~2 4 4' Обычно используют нормированные однородные координаты, когда ~,", =1. При однородные координаты любой точки ~х, у~ получаются простым добавлением третьей единичной координаты: ~х, у, 1).. 2. Программирование двумерных преобразований координат Типы данных и процедуры, используемые при построении преобразований координат удобно объединить в отдельном модуле и затем использовать его во всех программах. Ниже приводится листинг такого модуля таЖсея2В.рая.

img356 коррекция

Распознанный текст из изображения:

4

+ Модуль содержит объявления типов данных и подпрограмм, *

* необходимых для построения двумерных преобразований

* координат в матричной форме

******************+**************************+************** )

цп1г тагг1сез20;

1пгеггасе

гуре

//двумерный массив для представления матриц

//преобразований координат размером ЗхЗ

ТТгапягогт = аггау(0..2, 0..2) ой'ЭоцЬ1ер

//одномерный массив для представления матрицы

//однородных координат одной вершины

ТЧеггех = аггау(0..2) ой 0оиЬ1еу

//осуществляет преобразование координат вершин фигуры, переданных в массиве ч,

//с помощью матрицы Т: (Ч1):= (Ч) *(Т):

ргосес1цге Арр1уТгапяйогш(~аг Ч1 : аггау ог ТЧег~ехр

союзам Ч -: аггау ой ТЧеггех;

сопят.Т : ТТгапягогш)р

//Вычисляет матрицу общего преобразования Т, перемножая матрицы Т1 и Т2

//составляющих его преобразований

ргосес(цге СошЬ1пеТгапягогш(чаг Т '. ТТгапяЙогт;

сопряг. Т1, Т2 : ТТгапяйогш);

з.тр1етепгаГ1оп

//осуществляет преобразование координат вершин фигуры, переданных в массиве Ч, //с помощью матрицы Т: (Ч1):=(Ч)*(Т)

ргосес(цге Арр1уТгапяйогт(чаг Ч1 : аггау ой ТЧеггех;

сопяг Ч : аггау ой ТЧег~ех;

сопяг Т : ТТгапяйогт)у

1пгедег;

img357 коррекция

Распознанный текст из изображения:

-5-

Ьес.1п

//пройдем по всем вершинам фигуры

аког 1:= 0 г.о Н1дЬ(Ч) с(о ЬесгЫ

//вычислим и поместим в Р преобразованные координаты 1-ой вершины

аког ~ := О Го 2 с(о

Р[~] := 7[1, 0] * Т[0, ~] + Ч[~., 1] * Т[1, ~] + 7[3, 2] * Т[2,

//сохраним вычисленные координаты 1-й вершины в массиве Ч

Ч1 [1-] Рг

епс(г

//Вычисляет матрицу общего преобразования Т, перемножая матрицы Т1 и Т2

//составляющих его преобразований

ргосес(цге СотЬ1петгапзйоггп(айаг Т : ТТгапзйогт;

сопя~ Т1, Т2 : ТТгапзйоггп);

//временный буфер для хранения преобразования

Тгпр: ТТгапз йоггп,"

1п1едег;

//вычйслим 'и'-"п6местгим .в.Тшр матрицу общего преобразования

аког 1 := О ~о 2 с(о //пройдем по всем строкам

аког ] := 0 ~о 2 с(о //пройдем по всем столбцам

Тгпр[1, -]] := Т1[1, 0] * Т2 [О, ]] + Т1[1, 1] * Т2[1, д] +

Т1[1, 2] * Т2[2,

Т:= Тгпр;

епс];

3. Пример программы

В данном примере изображаются восемь треугольников, расположенных по кругу и

окрашенных в разные, постоянно меняющиеся цвета (рис. 5). Для того, чтобы получить такой

img358 коррекция

Распознанный текст из изображения:

-6- рисунок, треугольник А(140,10)В(120,80)С(160,30) восемь раз поворачивается вокруг точки 1:)(140,140) на угол р = —. 4

0

Рис. 5. Случайно меняющие цвет треугольники (разноцветные треугольники) цп1~ ~3п1~1у 1п~егХасе пзез К1пс(оказ, Меззадез,. ЯузУ~11з, С1аззез, Сгарп1оз, Соп1го1з, Гогов, Ма1одз, Кх~С1г1з, п~а1г1сез20р сопз~ //координаты точки О, вокруг которой будет происходить вращение треугольника Ох = 140р Оу = 140; Е1 = Р1 /4; //угол поворота, равен Пи/4 айаг //матрица однородных координат вершин треугольника АВС АВС : ахгау(0..2) ой ТЧег~ех = ((140, 10, 1), (120, 80, 1), (1бО, 80, 1)); //матрица перехода к системе координат с центром в точке 0 Т1 : Ттгапзйопп = (( 1, О, 0), ( О, 1, 0),

-Ву, 1)) Г //матрица поворота вокруг начала координат (заполняется до конца //в обработчике события ОпСгеа1е) К : Ттгапзйопп = ((1, О, 0),

img359 коррекция коррекция

Распознанный текст из изображения:

(О, 1, О),

(О, О, 1) );

//матрица перехода к исходной системе координат

Т2 : ТТгапзйогхп = (( 1, О, 0),

( О, 1, О),

(Эх, Эу, 1)) р

//матрица преобразования для поворота треугольника

//вокруг точки О

Т : ТТгапэхогхпу

Туре

ТГогхп1 = с1азз(ТГогш)

Т1хпег1: ТТппег;

ргосес(иге РогшСгеа1е(Яепс(ег: ТОЬ~ес1);

ргосес[иге ГогшРа1пх(Яепо(ег: ТОЬ~ес~);

ргосес(цге Т1хпег1Т1шег(Яепс(ег: ТОЬ~есХ);

ргхчахе

Ргх ~аде с(ес1ага11опз

рцЬ1'.с

( РиЬ1хс с1ес1ага~1опз

епс(у

айаг

Гогхп1 ТГогхп1 у

1хпр1ехпепхаххоп

(ЯР. *.РРМ)

//Обработчик.события' ОпСгеахе..Используется для инициализации данных

ргосес(цге ТГохт1. РогхпСгеа~е (ЯЕпбег: ТОЬ~есЬ);

Ьед1п

//заполним матрицу [Р.] для поворота ну угол Й1

В[0, 0] := соя(й1)у В[0, 1] := я1п(й1)у

В[1, О] := -з1п (й1); В[1, 1] := сов(х1);

//получим матрицу [Т] преобразования для поворота треугольника вокруг

//точки 0

СотЬ1пеТгапзйогш (Т, Т1, К)у //умножение матриц: [Т] = [Т1]*[В]

СотпЬ1пеТгапвйогхп (Т, Т, Т2); //умножение матриц: [Т] = [Т]*[Т2]

епс);

//Обработчик события ОпРахпх. Вызывается, когда необходимо перерисовать

//изображение на форме

ргосес(цге ТГогхп1.РогтРа1пх(Яепс(ег: ТОЬ)ес~)у

чаг

1пгедегр

хтрАВС : агхау[0..2] ой ТЧегхеху

с : ТСо1ог;

Ьеохп

//скопируем координаты вершин треугольника во временный массив

хог х := О хо 2 с(о 1шрЬВС[х] := ЛВС[х];

//будем поворачивать треугольник вокруг точки О на угол йх

//и рисовать его 8 раз

аког х := 1 1о 8 бо Ьедхп

//повернем треугольник

Арр1уТгапайогш(хшрЛВС, ~гпрЛВС, Т);

img360 коррекция

Распознанный текст из изображения:

//выберем случайный цвет для треугольника

с := ВЯВ(гапс(огп(255), гапс(отп(255), гапс(от(255))р

//нарисуем его в новом положении

х1ЬЬ Сапная с(о Ьед1п

//установим цвет для пера и кисти

Реп.Со1ог := су ВгизЬ.Со1ог := с;

//нарисуем треугольник

Ро1удоп ( [Роз.п1 (гоипс1 (1трЛВС [О, 01 ), гоцпс1 (~тпрАВС [О, 1] ) ),

Роз.п~ (гоапс((~трЛВС [1, 01 ), гоппс1 (~трЛВС [1, 11 ) ),

Родоп~(гоипс((~хпрЛВС[2, О~ ), гоцпс((~трАВС[2, 13 ) ) 1) Р

епс(

епс(;

епс(;

//Обработчик события Оптьтег. Вызывается при поступлении сигнала

//от таймера.

ргосес(цге ТГогт1.Тппег1Тппег(Яепс[ег: ТОЬ)ест);

Ьедтп

//перерисуем изображение на форме

РейгезЬ;

епс(;

4. Задание Изучить свойства базовых преобразований координат на плоскости, изучить метод

построения преобразований координат в матричной форме, освоить построение сложных

преобразований координат (поворот с центром в точке, 'отличной от начала координат,

отражение относительно прямой, отличной от. координатной оси и т.п,).

2. Пользуясь методом преобразования координат

, создать программу,

изображающую указанные объекты. Для того моделирования равномерного движения,

используйте компоненту Т~тег (значок "-.' на вкладке Буксует панели компонентов

Ое1рЫ).

7.1. Варианты задания

1. Вид сверху на движущуюся кордовую модель катера. Сделать возможными изменение направления и скорости, остановку и продолжение его движения при помощи управляющих клавиш.

2. Вид сверху на движущуюся кордовую модель самолета. Сделать возможными изменение направления и скорости, остановку и продолжение его движения при помощи управляющих клавиш.

img361 коррекция

Распознанный текст из изображения:

3. Гоночная машина, двигающаяся по овальной трассе (поворот должен осуществляться плавно). Сделать возможными изменение направления и скорости, остановку и продолжение ее движения при помощи управляющих клавиш.

4. Механический секундомер, работающий в реальном времени. Должна быть возможность включать, выключать и сбрасывать время при помощи управляющих клавиш.

5. Плывущая, качаясь на волнах, яхта. Для имитации плавного скольжения по волнам задать траекторию ее движения гладкой функцией, например, пологой синусоидой: у(х) =аяп(ох+с). Тогда в точке х угол наклона яхты к горизонтали можно принять равным углу у наклона касательной к графику синусоиды. По свойству производной ~д(у) =у ~х) =(ахт(Ьхтс)) =аЬ сох(Ьх+с). Отсюда у=ахату(аЬсох~Ьх+с)).

б, Вид сверху на крутящуюся карусель, Сделать возможными изменение направления и скорости, остановку и продолжение ее движения при помощи управляющих клавиш.

7. Работающий зубчатый механизм из трех сцепленных шестеренок. Сделать возможными

изменение направления и скорости, остановку и продолжение их вращения при помощи управляющих клавиш.

8. «Колесо обозрения» как в Парке Кулсьтуры..Сдетлать возможнь|ми его остановку и запуск

при- помощи:упраовляЮщих:~~авиа'щ; Люлхькти всегда должны висеть вертикацьно,

9. Человечек, качающийся сидя на качелях. Сделать возможными остановку и продолжение

его движения при помощи управляющих клавиш.

10. Горизонтальные качели с двумя человечками. Сделать возможными их остановку и

продолжение движения.

11. Солнечная система с вращающимися вокруг солнца. планетами.

12. Работающий вентилятор. Сделать возможными его остановку, включение и

переключение на различные режимы работы при помощи управляющих клавиш.

13. Трактор в движении с крутящимися колесами. Сделать возможными изменение

направления и скорости, остановку и продолжение его движения при помощи

управляющих клавиш. Сделать так, чтобы колеса крутились с естественной скоростью.

Для этого угол р поворота колеса должен определяться следующим выражением:

р = — радиан, где Х вЂ” расстояние, на которое переместился трактор, а Я вЂ” радиус его

колеса.

img362 коррекция

Распознанный текст из изображения:

-10-

14. Железнодорожный шлагбаум. Должен подниматься и опускаться по команде. Когда

шлагбаум начинает опускаться и все время, пока он опущен, должен мигать красный

двойной светофор, как на переездах.

15. Движущийся по рельсам паровоз с крутящимися колесами. Колеса должны крутиться без

пробуксовки и скольжения (см. пояснение к варианту №13).

1б. Вид сверху на накрытый стол. На столе стоят тарелки для гостей, в центре на большом

блюде лежит большая рыба. Стол должен начинать медленно вращаться в ту или в

другую сторону и останавливаться по команде пользователя.

17. Машина «Руссобалт» в движении. Сделать возможными изменение направления и

скорости, остановку и продолжение ее движения при помощи управляющих клавиш. При

движении колеса должны крутиться без пробуксовки или скольжения (см. пояснение к

варианту №13);

18. Рыбка, плавающая во всех направлениях по аквариуму. Носик рыбки должен всегда

смотреть по направлению движения. Аквариум виден сверху. Щелчок мышью по какому-

либо месту в аквариуме означает, что туда брошен вкусный червячок (его также нужно

изобразить). Рыбка должна тотчас подплывать и съедать его. При желании для мышки

можно нарисовать собственный курсор в виде червячка и назначить его форме. Для этого

можно использовать редактор Владе Ей~от. Он вызывается из главного меню ТооЬ в

Ве1рЫ.

19. Вид спереди на самолет с- вращающимся пропеллером. Мотор самолета должен

запускаться и останавливаться по команде пользователя.

20. Часы с цифрами„вращающимися стрелками и качающимся маятником

21,Колесный пароходик, плывущий по спокойной глади воды. Сделать возможными

изменение скорости и направления, остановку и продолжение сто движения.

22. Движущийся самосвал. Колеса должны крутиться без пробуксовки или скольжения (см.

пояснения к варианту №13). Он должен уметь по команде пользователя останавливаться

и продолжать движение, плавно поднимать и опускать кузов.

23. Вращающаяся тарелка с красивым цветным рисунком. Сделать остановку, продолжение,

ускорение и замедление ее вращения по командам управляющих клавиш.

24. Санки, съезжающие с горки по команде. Рельеф склона горки и, соответственно,

траекторию движения санок, задать с помощью гладкой функции, например,

img363 коррекция

Распознанный текст из изображения:

-11-

Л'

у(х) = асов(Ах+ с), 0 < х < —. О вычислении угла наклона санок к горизонтали в каждой

2

точке траектории см. пояснение к варианту №5

25. Колодец в разрезе с ведром и крутящимся воротом. Ведро должно опускаться,

зачерпывать воду и подниматься по команде пользователя.

26. Луноход в движении. Сделать возможными изменение скорости и направления,

остановку и продолжение движения. Колеса должны крутиться без пробуксовки или

скольжения (см. пояснения к варианту №13).

5. Контрольные вопросы

1, Какие преобразования координат называется аффинными? Назовите свойства аффинных

преобразований координат.

2. Какие преобразования координат называется ортогональными? Каким свойством

обладают ортогональные преобразования?

3. Обычная и матричная форма базовых преобразовайий координат. Применение базовых

преобразований координат.

4. Какйе:из'базбвыМ:преобразований координат являются ортогональными? Докажите-это.

5. Построение обратных преобразований к базовым преобразованиям координат

6. Построение обратных преобразований координат к сложным преобразованиям координат

(состоящим из нескольких базовых).

7. Постройте преобразования координат для поворота отрезка А(х„у,)В(хь,уь) вокруг точки

В(хьу~) на угол у против и по часовой стрелке.

8. Постройте преобразование координат, с помощью которого можно расплющить любой

предмет: ширина должна увеличиться„а высота уменьшиться в пять раз.

9. Найдите отражение треугольника А(х,„у,)В(хь,уь)С(х„у,) относительно начала координат.

10, Найдите отражение точки А(х„у,) относительно прямой у = Ь+ О.

11. Постройте преобразование для перехода от экранной системы координат по умолчанию

(начало находится в левом верхнем углу окна, ось абсцисс направлена вправо, ось

ординат — вниз) к привычной системе координат (начало совпадает с центром окна

(обозначим эту точку как С(х„у,)), ось абсцисс направлена вправо, ось ординат — вверх).

img364 коррекция

Распознанный текст из изображения:

-12-

12. Постройте преобразование для перехода от привычной системы координат к системе, в

которой оси абсцисс и ординат поменялись местами.

13. Постройте преобразование для перехода от привычной системы координат к системе,

начало которой совпадает с точкой С(х„у,), а направление оси абсцисс совпадает с

направлением вектора Х, = ~1, т~.

14. Постройте преобразование для растяжения любого объекта в три раза с центром в точке

С(х„у,) вдоль прямой с направляющим вектором А = (1, т~.

15. Точка А была отражена относительно оси ординат и в результате получила координаты

(х„у,), Постройте преобразование, которому она была подвергнута„найдите обратное к

нему и, пользуясь последним, найдите ее исходные координаты.

16. В результате растяжения вдоль оси абсцисс в К раз вершины треугольника получили

координаты А(х„у,), В(хь,уь), С(х„у,). Вершина А при растяжении не изменила своего

положения. Постройте преобразование координат, которому был подвергнут

треугольник, найдите обратное к нему и, пользуясь последним, определите исходные

координаты вершин В и С.

17. В результате поворота на угол ~р точки В(хьуь) точка А получила координаты (х„у,).

Постройте преобразование, которому она была подвергнута, найдите обратное к нему и,

пользуясь последним, найдите.ее исходные координаты.

18. Отрезок А(х„у,)В(хь,уь) - -:был .преобразован . в отрезок 'С(ха,ус)1Э(хьу~). Постройте

преобразование, которое могло использоваться при этом.

19, Метод работы с локальной системой координат на плоскости.

20. Рекурсивная математическая модель движения колеса.

Картинка-подпись
Хочешь зарабатывать на СтудИзбе больше 10к рублей в месяц? Научу бесплатно!
Начать зарабатывать

Комментарии

Поделитесь ссылкой:
Рейтинг-
0
0
0
0
0
Поделитесь ссылкой:
Сопутствующие материалы
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5136
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее