|
||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[14] reject:=Reject Check(outcode1,outcode2); if reject then done:= true else begin {возможно принятие целиком} accept:=Accept Check(outcode1,outcode2); if accept then done:=true else begin { разделить отрезок} {если P1 внутри, то с помощью SWAP сделать снаружи} if not((outcode1[1])or(outcode1[2])or (outcode1[3])or(outcode1[4])) then SWAP; { теперь P1 перемещается в точку пересечения} if outcode1[1] then begin {отбросить верхнюю часть} x1:=x1+(x2-x1)*(ymax-y1)/(y2-y1); y1:=ymax; end else if outcode1[2] then if outcode1[1] then begin { отбросить нижнюю часть} x1:=x1+(x2-x1)*(ymin-y1)/(y2-y1); y1:=ymin; end else if outcode1[3] then begin { отбросить правую часть} y1:=x1+(y2-y1)*(ymax-x1)/(x2-x1); x1:=xmax; end else if outcode1[4] then begin { отбросить левую часть} y1:=x1+(y2-y1)*(ymin-x1)/(x2-x1); x1:=xmin; end; end; end; until done; if accept then Line(x1,y1,x2,y2); { нарисовать отрезок} end;{procedure} Нормирующие преобразования видимого объема Зададим центральную перспективную проекцию с центром проекции в начале координат, как показано на рис. 31. Для реальных вычислений необходимо также определить значения минимальной и максимальной отсекающих плоскостей по координате z: z = z min и z = z max, соответственно. Границы экрана, или окна вывода задают четыре отсекающих плоскости сверху, снизу, справа и слева. Таким образом, изображение, получаемое с помощью нашей проекции может находится только внутри усеченной пирамиды образованной упомянутыми плоскостями, причем объекты вне этой пирамиды не проецируются на экран, т.е. являются невидимыми для наблюдателя. Видимым объемом называется замкнутая область пространства, объекты внутри которой проецируются на экран. В случае центральной перспективной проекции видимым объемом является усеченная пирамида. Одной из важных задач компьютерной графики является нахождение эффективного способа отсечения трехмерных объектов по границе видимого объема и удаление невидимых ребер и граней. Например, в случае центральной перспективы, для решения задачи отсечения пришлось бы для каждой грани или ребра находить точки пересечения с плоскостями усеченной пирамиды, что в общем случае потребовало бы значительных вычислений. Решение заключается в преобразовании видимого объема к Рис 31. Видимый объем, вид сбоку. виду, в котором вычисления проводились бы значительно проще. В общем идея заключается в том, чтобы свести преобразование центральной перспективы математически к виду параллельной проекции, в которой, очевидно, операция взятия проекции сводится к простому отбрасыванию у точек координаты z. Будем решать задачу в два этапа. В начале приведем видимый объем к нормированному виду. При этом значение zmax = 1, а границы по осям х и у лежат в диапазоне [-1,1], как показано на рис. 32. Нормирующим преобразованием в этом случае будет операция масштабирования, которая для произвольной точки X выражается в виде: x = xs( Ух Л/y ,V J, V/ max / max / maxJ
Рис. 32. Нормированный видимый объем. Xmax azmax хэкрzmax уэкр где= х х =--, и соответственно, уэкр =--. zaa max Нормированный видимый объем позволяет с большей легкостью решать задачу отсечения по границе. А именно, в этом случае может применяться модифицированный вариант алгоритма Коэна-Сазарленда в котором вместо 4-битовых используются 6-битовые коды вне/внутри для описания нахождения точки в соответствующей области пространства. Уравнения боковых граней видимого объема сильно упрощаются, например, для правой отсекающей плоскости уравнение запишется z = х, а для левой боковой z = -х и т.д. . Тогда для некоторой точки (х, у, z) условие установления бита в единицу будет следующим: |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||||||