Главная » Просмотр файлов » OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д

OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (1124475), страница 102

Файл №1124475 OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (Раздаточные материалы) 102 страницаOpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (1124475) страница 1022019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 102)

(8.75, 9.75), (0.75, о.5П; 6С(1оаС согчехпотв[8] (0.0, 9.8, 0.8, 9.0, 1.8, 1.8, 1.0, 1.8); 6[(1оат ри1РС(3][2) = /' по часовой стрелке */ ((8.75. 8.5), (0.5, 8.25), (8.25, 9.5)); 9161еаг(6С СОСОМ 80РГЕМ ВХТ [ 61 0ЕРТН ВЬЕРЕМ 81Т); 91ровпйаСгтх(): 81йотвтет(338.9, 1., 8., 8.); 915са1ет(0.5, 8.5, 0.5); 91оВейтп5игтасе(тлейогЫ; 81ойогьв5огсасе(тпейогЬ, 8, Хпотв, 8, Хпотв, 4 * 3, 3, аст1рот птв[8] [О] [О], 4, 4, 61 МАР2 ЧЕМТЕХ 3); й[овейтпТгт'в(СПейогЬ); й[оРи1Согче(СПейогЬ, 5, аеийеРС[0][0], 2, 610 МАР1 ТМ1М 2); В[ойпитгтв(тлейогЫ; 91оВейтпТг(в(СПейигЫ; 91ойогьвсогче(спемогь, В, сигчехпосв, 2, асогчеРс[9][8), 4, 6(0 МАР1 Та]М 2); й]ори[Сигуа(тйейогЬ, 3, арн]РС[8)[9], г, 610 МАРХ ТМХМ 2); 91ийпитгтв(СПейого); 91оЕпи5огтасе(тлейогЫ; 91РоРМатг1'х(); 91Р1овл(): В листинге 128 команды-скобки к[ибеа[птг! в() и к1оЕпотг(в() обрамляют каждую кривую усечения. Первая, с вершинами в массиве ет[йеРС [) [], ориентирована против часовой стрелки вокруг единичного квадрата параметрического пространства.

Это гарантирует отображение всего, что не исключается из рассмотрения вложенными кривыми усечения, обходимыми по часовой стрелке. Вторая кривая — это комбинация кусочно-линейной и [ч1]ВВ5-кривой. Концы ]([]ВВ5-кривой в точках 10,9, 0.5) и (0.1, 0.5) замыкаются с помощью кусочно-линейной кривой. Выбор и обратная связь После прочтения этой главы вы научитесь следующему: ° Создавать приложения, позволяющие пользователю выбирать область экрана или нарисованный на экране объект ° Использовать режим обратной связи Орели~ для получения результатов построения сцены Выбор 467 Некоторые графические программы просто рисуют статические изображения двух- или трехмерных объектов. Другие приложения позволяют пользователю идентифицировать объект на экране и затем перемещать, модифицировать, удалять его или манипулировать этим объектом другими способами.

Библиотека ОрепС». ориентирована на поддержку именно таких интерактивных приложений. Поскольку обычно нарисованный на экране объект подвергается вращению, смещению н перспективным преобразованиям, это может усложнить задачу его идентификации пользователем на фоне трехмерной сцены. В помощь вам ОрепСЕ предоставляет механизм выбора, автоматически информирующий вас, какие объекты отображены внутри указанной области окна. Вы вправе использовать этот механизм вместе со специальными процедурами-инструментами для выяснения того, какой объект в пределах области указан пользователем — выдеин (р1сЫпй) им с помощью указателя мыши.

Выбор фактически является режимом выполнения операций ОрепС1; обратная связь — другой подобный режим. В режиме обратной связи вы используете свое мшаратное обеспечение и ОрепСЕ для выполнения обыкновенных построения и отображения сцены. Вместо использования вычисленных результатов для рисования изображения на экране в этом случае ОрепСЕ возвращает (1еедз Ьаск) эту информацию вам. Например, если вы хотите нарисовать трехмерный объект с помощью графопостроителя, а не на экране, вам следует отобразить его элементы в режиме обратной связи, собрать вместе инструкции отображения и затем преобразовать их в команды, понятные графопостроителю. Как при выборе, так и в режиме обратной связи информация об изображении возвращается приложению, а не посылается в буфер кадров, как это происходит при воспроизведении.

Таким образом, экран остается «замороженным» вЂ” никакого рисования не происходит, — пока ОрепС1 не покинет режим выбора или обратной связи. В обоих режимах содержимое буферов цвета, глубины, трафарета и накопления не подвергается воздействию. В этой главе каждому из означенных режимов посвящен собственный раздел: » Выбор. Рассказывает, как испольэовать режим выбора и связанные с ннм подпрограммы, чтобы позволить пользователю вашего приложения выбирать объект на экране. ° Обратная связь. Здесь описывается, как получить данные, которые могут быть отображены на экране, н как обрабатывать эту информацию. Выбор Обычно, когда вы планируете использовать механизм выбора ОрепС!., сначала вы рисуете свою сцену в буфер кадров и затем входите в режим выбора и перерисовываете сцену.

Войдя в режим выбора, вы уже не можете изменить содержимое буфера кадров, пока не покинете этот режим. После выхода из пего ОрепСБ возвращает список примитивов, попадающих в видимый объем (помннте, что видимый объем определяется текущими модельно-видовой матрицей и матрицей проекции и любыми дополнительными плоскостями отсечения, как обсуждалось 468 Глава 13 ° Выбор и обратная связь в главе 3). Каждый примитив, пересекающий видимый объем, утвердительно реагирует на выбор самого себя (зе1есг!оп и!1). Список примитивов фактически возвращается как массив целочисленных идентификаторов (пашез) — имен и связанных с ними данных — записей реакции системы ()пс гесогг!з) соответствующих текущему содержанию стека имен (паше зсас!с).

Вы выстраиваете стек имен загрузкой имен во время применения комацды отображения примитивов, находясь в режиме выбора. Таким образом, ко~да возвращается список имен, вы можете использовать его для определения, какой из примитивов может быть выбран на экране пользователем. В дополнение к механизму выбора Ореп01.

предоставляет подпрограммы-инструменты, служащие для упрощения выбора в некоторых случаях, ограничивая рисование небольшой областью окна просмотра. Обычно вы используете такую подпрограмму, чтобы выяснить, какой объект нарисован вблизи указателя мыши, тем самым вы можете идентифицировать выбранный пользователем объект. (Вы можете также разграничить область выбора, указав дополнительные плоскости отсечения. Помните, что эти плоскости действуют в отношении мировых координат, но не в системе координат экрана.) Поскольку выбор с помощью указателя (р!сЫпд) является частным случаем выбора (зе!есг!оп), сначала в этой главе мы рассмотрим выбор в принципе, и лишь затем — выделение указателем мыши.

Основные шаги Чтобы задействовать механизм выбора, вы должны выполнить следующие шаги. 1. Указать массив, который будет использоваться для возвращаемых записей реакции, с помощью В15е1естВиттег О. 2. Войти в режим выбора посредством задания параметра 61 5 Ес ВСт для команды В1Репоегцоое(). 3.

Инициализировать стек имен командами В11п!(йааез() и В1Ризлйаве(). 4. Определить видимый объем, в котором будет возможен выбор. Обычно он не отличается от видимого объема вашей оригинальной нарисованной сцены, поэтому вероятно, что вы захотите сохранить и после восстановить текущее состояние преобразования — с помощью В1Ризлнасг!х() и В1Рорпатг1х(). 5. Поочередно вызывать команды отображения примитивов и команды манипулирования стеком имен с целью присвоить каждому заслуживающему интерес примитиву соответствующее имя, 6. Выйти из режима выбора и обработать возвращенные механизмом выбора записи реакции.

чо!г! В15е1естботтег(01л!ге! з(ге, 01п!п( 'ЬиЦег); Задает массив, используемый для возвращаемых при выборе данных. Аргумент ЬиДег — это указатель на массив беззнаковых целых, куда помешаются зти данные, а аргумент зые указывает максимальное количество значений, которые могут быть сохранены в массиве. Вам следует сделать вызов В15е1ессаиттег() перед входом в режим выбора. Выбор 469 сз1.!пс В1йепбегИобе(01еппщ тоЫе); Управляет тем, в каком режиме приложение будет выполнять визуализацию — в режиме выбора или обратной связи. Аргумент режима то/(е задается равным 6С йЕМОЕй (по умолчанию), 6С 5ЕСЕСТ или 61 РЕЕОВАСК.

Приложение остается в указанном режиме до того момента, пока снова не будет выдана команда В1йепбегМобе() с другим аргументом режима. Перед входом в режим выбора нужно вызвать команду В15е1ессвиттег() для задания массива выбора. Аналогично, перед активизацией режилса обратной связи следует вызвать В1реебвасКВигтег() для задания массива ланных обратной связи. Возвращаемое значение В1йепбегИобе() для текущего режима визуализации (то есть не значения аргумента тог(е); 61 5ЕсЕСТ или 61 РЕЕОВАСК представляет собой количество зарегистрированных попаданий или количество значений, помещенных в массив обратной связи; отрицательное число означает выход за границы (переполнение) массива.

Вы можете использовать параметр 61 йЕМОЕй ИОВЕ совместно с В16ес1псекегу() для получения идентификатора текущего режима. В следующем разделе описаны команды для манипулирования стеком имен. Создание стека имен Как упоминалось в предыдущем разделе, стек имен закладывает основу для возвращаемой вам информации выбора. Чтобы создать стек имен, сначала инициализируйте его командой В11п! (навез(), которая просто очищает стек, и затем добавьте целочисленные идентификаторы-имена во время выполнения соответствующих команд отображения. Как и следовало ожидать, команды, манипулирующие стеком, позволяют вам затолкнуть имя в него (В! Ризпйаве () ), вытолкнуть из него имя (В1Рорнаве()) и заменить имя на вершине стека другим (й11оабнаве()).

Листинг 13.1 демонстрирует, как программа может манипулировать стеком с помощью этих кома!Сд. Листинг 13.1. Создание стека имен я11птснавез(), я1Розпнаве(0); я1Розьнатгтх(); /* сохранение текущего соСтояния ПРеобразования /" здесь создается желаемый для вас видимый объем '/ й1(оабнаве( 1); бгаизовеОЬ)есС(); З1(оабнаве(2); ОгаидпослегОЬ)ест(): З1(оабкаве(З): бгаитеСАпогпегОЬ)есС(); Оган) озтопеногеОЬ)есС(); я1Рориасгтх(); /' восстановление предшествующего состояния преобразования '/ 470 Глава 13 ° Выбор и обратная связь В этом примере первые два рисуемых объекта имеют собственные имена, а третий и четвертый объекты совместно использу|от одно имя.

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

Тип файла
PDF-файл
Размер
56,35 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

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