|
||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[11] 0" 0 0 . 1 0" 0 0 , 1 0" 0 0 1 Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси y. Правильность этих матриц легко проверить поворотом одного из ортов на 90o, при этом он должен перейти в следующий по порядку орт на соответствующей координатной оси. Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные: T ~1 (Dz, Dy, Dz) = T(- Dz,-Dy,-Dz); для операции масштабирования - на обратные значения: S-1 (Sz, Sy, Sz )= S (1/Sz ,1/Sy ,1/Sz); для поворота - выбором отрицательного угла поворота: R 1 (а) = R(-a). Результатом нескольких последовательных поворотов будет матрица 0" 0 . 0 . Rz (а) = Г Cos а Sin а - Sin а Cos а 0 0 00 Матрица поворота вокруг оси x имеет вид: 0 0 1 0 Rx (а) = и вокруг оси y: Ry (а) =
A
Здесь верхняя матрица размером 3 х 3 называется ортогональной. Важным ее свойством является то, что обратная к ней матрица является - 1T транспонированной: B - B . Это полезно тем, что при вычислениях достаточно поменять индексы местами и обратное преобразование получается автоматически. После перемножения любого числа матриц вида T, S и R результирующая матрица всегда будет иметь вид:
Здесь верхняя часть размером 3 х 3 определяет суммарный поворот и масштабирование, а три коэффициента последней строки - суммарный перенос. Вопросы эффективности вычислений Рассмотрим проблему ускорения вычислений в одной из самых трудоемких операций компьютерной графики - операции поворота точки относительно начала координат. Как было показано ранее, для ее выполнения необходимо произвести 4 операции умножения, 2 операции сложения, а также вычислить значения синуса и косинуса угла поворота. Напомним вид формул поворота: x - x • Cosa - y • Sina y - x • Sina + y • Cosa Одним из наиболее часто встречающихся способов ускорения операции поворота является отказ от вычисления синуса и косинуса угла во время выполнения программы, и использование их заранее подсчитанных значений, которые занесены в специальную таблицу. Например, в этой таблице могут храниться значения синусов и косинусов углов поворота с шагом в 1 градус. Тогда целое количество градусов угла поворота может служить в качестве индекса при извлечении соответствующих значений синусов и косинусов из таблицы. Такой прием называется табличным поворотом. Дополнительным способом ускорения операции поворота является уменьшение количества операций умножения. Рассмотрим вывод формулы О. Бьюнемана с использованием тангенса половинного угла, в которой поворот точки вокруг начала координат производится за 3 операции умножения и 3 операции сложения. Так как на многих микропроцессорах операции умножения выполняются дольше чем операции сложения, то экономия времени достигается за счет уменьшения операций умножения. Вывод формулы будем получать из геометрических построений, как показано на рис.27. Рис. 27. Вывод формулы О. Бьюнемана. Будем искать выражение координат x и y через x и y . На оси Ox отложим отрезок OS, такой что OS = x . Тогда x = OS - QS = x - QS. Здесь отрезок QS является горизонтальной проекцией отрезка PT, где PT = PU + UT, PU = y, UT = xtgв => x = x- PT Sin2, где PT = y + x tg . Теперь, зная x, можно выразить y в виде суммы длин отрезков QV и VP . Так как длины отрезков PV и PT равны как радиусы окружности с центром в точке P, то y = x.gв + PT. Обозначим PT = T отсюда следует, что |
Среды: 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 | ||||||||||||||||||||||||||||||||||||||||||||