Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 18
Текст из файла (страница 18)
В этом случае вектор нормали для каж- (3.23) поряд~а 150..Туенмж',чюоверхнопгь, например бумага мли ткшюь, характеризуется значением гю, близким к"единице. дой грани приходится вычислять только один раз. Кроме того, векторы 1 К' и зг в пределах каждой грани могут считаться постоянными, если предполагаетю1я,; что источники света и наблюдатель находятся далеко от объекта.
Это предивно ' жение широко используется для упрошения вычислений. В итоге выра»11вют, ние (3.23) приходится вычислять только один раз для каждой грани. Упрощвд'' вычисления, мы, однако, теряем плавность перехода между соседними треупшът ными гранями. Одним из решений этой проблемы является использование плавно меняюшегюю;" ся вектора нормали в пределах каждой грани. По методу Фонта вектор единичг ной нормали для грани вычисляется интерполяцией векторов нормали в верюм.-' мах этой грани. Вектор нормали в вершине вычисляется усреднением вектор1в. нормали плоских граней, которым эта вершина принадлежит.
Другое решение: —,,': вычислять интенсивность света для каждого пиксела путем интерполяции интенсивностей в вершинах грани. Это называется затуиюввываииеи мо»ювио2у Гуро (Соигаиь( в)юаь]юмЕ). 3.9.2. Трассировка лучей Метод затушевываиия, описанный в предыдущем разделе, может использовэтю'= '. ся в отнбсительно простых условиях, когда один объект освешается далеко р»1р-:.,' ' положенными точечными источниками света. Одмако он неприменим в слут(ае. множества объектов, особенно если некоторые из них прозрачны, а другие пугегюю',:! ломляют лучи. В сложных ситуациях используется метод трассировки лучвюю -., (гау 1гасювя).
Основная идея метода заключается в следуюшем. Источники света испусквкф-' ' лучи во всех направлениях, и все эти лучи прослеживаются до тех пор, пока Оми, не попадают в одну из точек акрама. В процессе прослеживания вычисляется из,-:::, менение интенсивности и направления луча при падении его на какой-либо объеме ~' Направление меняется по законам рассеяния, отражения и преломления. Ках~-;, дая точка экрана (пиксел) окрашивается в цвет, соответствующий интенсивно сти пучка света в момент его падения на экран. Поскольку для заполнения экрь~.-, на таким путем пришлось бы проследить бесконечно много лучей, такой полю]ю»д" на практике нереален. Нас интересуют цвета конечнопю числа пикселов экрамд.
'. поэтому рассматривать бескомечное количеспю лучей не обязательно. Нужно,::. рассмотреть траектории конечного числа лучей в обратном направлении. 'Луч'. проходит из центра проекции сквозь каждый пиксел и прослеживается в обрат ную сторону до тех пор, пока он не выйдет из просматриваемого объема, не упа:-"-': дет на рассеивающую поверхность или не войдет в источмик света (рис. 3.Щ:.-,' Если луч достиг источника света, это означает, что между источником и экранами.:" отсутствуют непрозрачные препятствия, поэтому пиксел окрашивается в имат,„" источника.
Если луч выходит из просматриваемого объема, значит, никак»те'~ф~:.' екты на данный пиксел не проецируются, и он должен быть окрашен в цвет фоУЙ ':, Если же луч падает на рассеивающую поверхность, проследить его траектории~:::,, дальше невозможно. В этом случае цвет пиксела окрашиваетсн в цвет отр~, мого данной поверхностью света.
Следовательно, интенсивности света на рб~::: сеивающих поверхностях должны быть вычислены заранее по методу затушевю1~",,'1 вания, описанному в предыдушем разделе. Строке заголовке Оконное меню Кколкв Свепмуть р лровкции Плотвосл проекции Рис. 3.34. Трассировка лучей Полоса— прокрутки Изменение размеров окна Рис. 3.33. Окно диспетчера Моун 3.11. Система Х млпдож :.3.10.
ГраФический интерфейс пользователя Как отмечалось ранее, важной особенностью существующих программ САГ)/ САМ/САЕ является взаимодействие с пользователем посредством графического ввода и графического вывода. Другими словами, программное обеспечение должно иметь возможность открывать окна (области взаимодействия) для отображения меню или значков, а также сопоставлять пунктам меню и значкам какие-либо функции. Программное обеспечение, предоставляющее такие возможности, называется графическим итояерфейсом пользователя (8гарй(иЛ игег тлувт/псе — ! 'И). Программист может построить самодельный графический интерфейс на базе конкретной графической библиотеки.
Этот интерфейс будет обладать недостат,ком, связанным с невозможностью перенести его на рабочие станции, не поддер.живающие исгюльзованцую графическую библиотеку. Поэтому интерфейс придется переписывать заново для каждой новой графической рабочей станции.
Чтобы избежать этой проблемы, программисты строят графический интерфейс на базе системы Х ту!пт)оту, которая в настоящее время поддерживается большинством графических рабочих станций. (Системе Х ту!пг!оту посвящен следующий .раздел этой главы.) Два типичных интерфейса пользователя, основанных на Х ччпг!оту, называются Ореп (люк и 08Е/Мог!1. Орел 1оок поддерживался корпорацией Бцп М!сгозузгетз, а 08Е/Мог!1 — всеми прочими производителями, включая 1ВМ, Неут!егг-Раскагт), РЕС и Текггоп1х. П ам Рограммист, пишущии приложение с использованием Ореп 1лю1г или ОБЕ/ ог!1, мож жет обращаться к функциям диспетчера окон для выполнения таких пераций, как открытие окон, построение меню и выполнение задач, вызымых пунктами меню'.
Графический экран диспетчера окон МоИ показан на ис. 3.35. Реп )люк и МОЯ хороши для разработки приложений по той причине, что они нованы на системе Х ту!пт)оту, достоинства которой будут рассмотрены в слеющем разделе. На персональных компьютерах, работтеощнх лод управлением %'!лдоттз 98/ХТ, аналогичные воз е возможности предоставляются набором базовых классов М!сгозой (Миговой Роолт!айое С!взлез — Мг С). Разработка системы Х ту!пт!оти (или просто Х) началась в 1983 г. в Массачу-' сетском Технологическом институте под кодовым названием «проект Афинам Оконный интерфейс разрабатывался па основе операционной системы под на- ' ' званием Чт, которая была создана в Стенфордском университете в начале 80-'х.
В !986 г. вышла первая коммерческая версия сисгемы Х ту!пг!оту, которая назы- валась Х10. Позднее было объявлено о выпуске Х11К5. Система Х ччпт!оту позволяет приложению открывать и закрывать окна на рабо- чих станциях, подключенных к сети. Операции ввода и вывода также могут осу- ществляться на любой рабочей станции. Слово чокноь имеет в этом разделе не-:: сколько иное значение, нежели в разделе 3.3.
Здесь под окном понимается ". отдельная область экрана рабочей станции, через которую пользователь взаимо- -'- действует с вычислительными ресурсами сети. Например, мы можем открыть,,' два окна ца рабочей станции !Ж1)1СО2 (рис. 3.36) и нсгюльзовать одно из этих',,'," окон в качестве портов ввода н вывода для программы, выполняемой на компью',:: тере ЯЛт!. Одновременно второе окно может использоваться для ввода и вывода--;-. программы, выполняемой на самом 1)т!В1ОО2. Для выполнения задач такого рода систелта Х ук!пооук должна уметь принимать запросы от клиентов, посылать запросы на другие рабочие станции и выполнять .' .: графические операции ввода-вывода с окнами экрана. Окно может быть распо- '.' ложено на лк>бом компьютере сети.
На рабочей станции, где должно быть откры-.: т то окно, должен работать сервер Х ту!пт!ои, способный выполнять операции С'," .' графикой. Запросы клиента пишутся с использованием специальных функции-," которые хранятся в библиотеке Х!!Ъ. Библиотека Х!!Ь должна быть установлена:-,"" и на той рабочей сгайции; где выполняется приложение. Пересылка запроса по сети осуществляется основным кодом системы Х ччпс1отв. Вооб1це говоря, в систему входят все перечисленные компоненты, включая Х-сервер и Х11Ь. Арф мжзшввп Риа. 3.36. Использование х в сетевой среде , Итак, приложение для Х тепп)отт обладает следующими достоинствами.
Во-пер- вых, приложение, выполняемое на одной рабочей станции, может осуществлять . графический ввод-вывод через окно, открытое на другой рабочей станции. Во- вторых, на одной рабочей станции может быть открыто множество окон, через ' которые пользователь имеет возможность работать с вычислительными ресурсами разных машин. Наконец, приложение, написанное для системы Х ччпдотт, не зависит от операционной системы и типа рабочей станции. Теми же достоин' ствами обладает и графический интерфейс пользователя, который также может считаться приложением. То же можно сказать и об интерфейсах Орел 1.оох и Мог(Е.
10. Какие операции могут выполняться с экранным файлом? ' 11. Точка зрения и ~очка наблюдения имеют мировые координаты (1; 1, 2) н (О, 1, 2). Вектор вертикали имеет координаты (О, О, 1). 1) Нарисуйте эскиз, показывающий взаимное расположение экрана, наблюдательской системы координат, точки зрения и точки наблюдения, 2) Напишите матрицу преобразования Т осуществляющую перевод мировых координат в наблюдательские.
3) С помощью матрицы преобразования определите наблюдательские коор. ",''. динаты точки с мировыми координатами (5, 1, 2). 12, Какие матрицы преобразования и в каком порядке должны быть применены ' = для поворота точки (2, 2) на плоскости зу на 30' против часовой стрелки от-, ':..
носительно точки (3, 4)? Вычислите координаты точки после поворота, при-:-',. менив матрицы преобразования к точке (2, 2). 13. Взаимное положение систем координат показано на рисунке. Ответьте па. " приведенные ниже вопросы. зрения Вопросы и задачи 1. Какими недостатками обладают графические программы, написанные непосредственно с использованием команд драйвера устройства? 2. Объясните, почему графическая программа, основанная на какой-либо графической библиотеке, может выполняться лишь на ограниченном числе графических устройств.
3. Какова главная причина, по которой для задания положения на графическом устройстве используется виртуальная, а не обычная система координат устройства? 4. Почему лля задания формы объекта используется модельная система координат этого объекта? 3. Объясните, каким образом задаются положение н ориентация кажлого объекта сцены.
' б. Кратко опишите процедуру преобразования координат точки объекта из молельной системы в экранную. 7 Объясните значение термина «окноь в компьютерной графике. , К Обьясните значение термина «окно просмотра». з. Объяснитс различие между рсжнмалш выбора и опроса. 1) Точка объекта имеет координаты ( — 3, О, 3) в модельной системе. Координаты этой точки в мировой системе координат (Х„, у, Хи) могут быть:, получены по приведенной ниже формуле, если имеется матрица преобра.