lect_10 (Лекционный курс в ворде)

2019-05-09СтудИзба

Описание файла

Файл "lect_10" внутри архива находится в папке "Лекционный курс в ворде". Документ из архива "Лекционный курс в ворде", который расположен в категории "". Всё это находится в предмете "инженерная графика" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "lect_10"

Текст из документа "lect_10"

Лекция №10…………………………………………………………….1

  • 11.1 Этапы создания графического объекта…………………….2

  • 11.2 Преобразования положения объекта……………………….3

  • 11.3 Положение камеры…………………………………………..4

  • 11.4 Преобразования, определяющие положение и

ориентацию объекта в мировой системе координат…………..5

  • 11.5 Перспективное проектирование…………………………….6

  • 11.6 Проектирование……………………………………………...8

  • 11.7 Композиция и перестановка преобразований…. … …. ….10

  • 11.8 Используемые геометрические преобразования..… ….….13

  • 11.9 Иерархия преобразования ……………………….…………14

  • 11.10 Уравнения плоскости ……………………………..……….18

  • 11.11Отсечение………………………………………………….20

Устюгова Елена группа 203

Иновенков Олег группа 203

11.1 Этапы создания графического объекта

Задание 3D объекта и его создание разбивается на несколько этапов, в процессе которых последовательно преобразуется система координат. Изначально объект задается в некоторой своей локальной системе координат (OCS-object coordinate system), которая затем размещается в мировой системе координат (WCS - world coordinate system). Далее определяем видовую систему координат (VCS – viewing coordinate system), задавая картинную плоскость, положение глаза (камеры) и систему координат камеры.



В
идовая система (VCS) может быть как правой, так и левой. Чаще всего, ось OZ направлена либо из экрана, либо в экран (что соответствует правой или левой системе координат при одинаковом направлении осей OX и OY). Определить является ли система координат правой или левой можно с помощью следующего мнемонического правила: если можно «взяться» правой рукой за ось OZ, так чтобы большой палец был направлен в сторону положительного направления оси, и затем рукой совместить поворотом вокруг оси OZ, ось OX и ось OY, то система координат является правой, если это можно проделать левой рукой, то левой.

На рисунке RHCS – right hand coordinate system (правая сторонняя система координат) , LHCS – left hand coordinate system (левая система координат).

Итак, последовательность преобразований систем координат будет выглядеть следующем образом:


Где OCS – object coordinate system (локальная система координат объекта)

WCS – world coordinate system (мировая система координат)

VCS – viewing coordinate system (видовая система координат)

CCS – clipping coordinate system (система координат клипа)

NDCS–normalized device coordinate system (нормализованная система координат устройства)

DCS – device coordinate system (система координат устройства)

В результате этих преобразований объект помещается в мировую систему координат, затем переносится в систему координат глаза, вычисляется перспективная проекция, нормализованные координаты (от 0 до 1) в системе координат устройства и затем координаты в системе координат конкретного устройства.

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

11.2 Преобразования положения объекта

Используя библиотеку функций OpenGL различные преобразования можно осуществлять вызывая следующие функции:

  • Моделирующее преобразование: glTranslatef()

glRotatef()

glScalef()

  • Видовые преобразования (положение камеры, направление камеры и т.д ):

gluLookAt()

glFrustum()

  • Задание проекции: gluPerspective()

glOrtho()

gluOrtho2D()

  • Задание области видимости: glViewport()

М
оделирующие преобразования определяют положение объекта в мировом пространстве. Изначально матрицу видового преобразования строиться на основе информации о параметрах камеры (положении, направлении камеры, положительного направления) и положении мира относительно камеры.





11.3 Положение камеры

Наиболее частым способом определения параметров камеры является определение следующих ее свойств:

  • Координаты камеры

  • Направление обзора

  • К
    оординаты вектора, определяющего вертикальное направление

Для задания положения камеры в графической библиотеке OpenGL предусмотрена специальная функция gluLookAt():

gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz),

где (ex,ey,ez) – положение камеры, (rx,ry,rz) – направление обзора, (ux,uy,uz) – координаты вектора, определяющего вертикальное направление.

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

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

/*загружаем в качестве текущей единичную матрицу*/

gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz);

/*устанавливаем новые параметры камеры*/

Таким образом, матрица преобразований, на которую в дальнейшем умножаются координаты всех создаваемых объектов, изначально вычисляется на основе параметров камеры, а все дальнейшие преобразования осуществляются умножением этой матрицы на матрицу данного конкретного преобразования.

11.4 Преобразования, определяющие положение и ориентацию объекта в мировой системе координат

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

Например, пусть в локальной системе координат объект имеет следующий вид,

а в мировой системе координат этот объект должен иметь другие координаты:

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

Окончательный перенос объекта в нужное положение параллельным переносом.

При параллельном переносе сохраняются относительные длины и расстояния между объектами.

11.5 Перспективное проектирование

При перспективном проектировании мы получаем изображение в перспективе. Это преобразование является нелинейным. Существуем множество видов перспективных проекций: относительно одной точки, относительно двух точек, изометрическая проекция и т.д.

Перспективное преобразование также как и остальные осуществляестя умножением на соответсвующую матрицу. Рассмотрим ее построение на следующем примере:

Имеем два подобных треугольника, следовательно y’/d=y/z или y’=y*d/z, аналогично x’=x*d/z. Тогда в матричной форме это преобразование будет иметь вид:

11.6 Проектирование

Основной задачей проектирования является перевод 3-х мерного объекта, заданного в видовой системе координат (VCS), в 2-х мерный объект нормализованной системы координат устройства (NDCS).

При проектировании отсекаются объекты, которые не попадают в область видимости, а также определяется множество значений z

(z[near; -far] ), для которого точки, имеющие значения координаты z , принадлежащие этому множеству, являются видимыми, а точки находящиеся слишком близко (z>(-1)*near) или слишком далеко

(z<(-1)*far) невидимыми.

Для ортографической проекции область видимости будет определяться как параллелепипед:



Используя функции OpenGL, ортографическая проекция задается функциями:

  • glOrtho(left, right, bottom, top, near, far) - необходимо чтобы near >0 , far >0.

  • glOrtho2D(left, right, bottom, top) - аналог glOrtho() только near=0, far=1.

А
для перспективной проекции область видимости будет иметь вид:

Используя функции OpenGL, перспективная проекция задается функциями:

  • glFrustum(left, right, bottom, top, near, far) - необходимо чтобы near >0 , far >0.

  • gluPerespective(fovy,aspect,near,far) - параметр fovy задает угол видимости в направлении оси OY в градусах , центрированный относительно этой оси.

11.7 Композиция и перестановка преобазований

Серия преобразований может быть свернута в одну матрицу преобразований.

Допустим, мы имеем следующий объект:



Допустим, что мы хотим его заменить в нашей сцене следующим образом:



Это может быть осуществленно несколькими способами, например:




Заменяя (1) в (2), получим:



Замечания о матричном преобразовании

  • композиция преобразований не является коммутативной

  • матрицы преобразований могут быть перемножены между собой в одну

  • размещение трансфориации описывает координатную систему, в которой преобразование имело место. Например, делая дальнейшие преобразования в нашей модели, мы можем записывать их как в координатах объекта так и в мировых координатах.



  • Преобразования обратимы ( матричные и др.), то есть: trans(a,b,c) trans(-a,-b,-c)=I

  • Преобразования могут восриниматься как изменения в системе координат

  • Преобразования, необходимые для перевода точки из КС2 в КС1, можно получить как обратную последовательность кадров, переводящих КС1 в КС2.

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



Наиболее простой метод создания объектов – использование примитивов, таких как линии и многоугольники. На рисунке М – матрица преобразования, которая переводит точки (2D или 3D) в ликсельные координаты.

for each vertex i

new_vertex_list[i] = M * vertex_list [i]

scanconvert (new_vertex_list )

Вот эквивалент в OpenGL:

GlBegin( GL_POLYGON);

for each vertex i

glVertex3fv( vertex_list [i] );

glEnd();

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