|
Матрица однородных координат
где матрица преобразований M имеет следующий вид:
Обычно на практике используются нормализованные координаты (параметр S равен 1). На практике, создавая различные программы трехмерного моделирования, требуется прежде всего реализовать подмножество векторных и матричных операций. Используя аппарат однородных координат, разрабатывать системы визуализации трехмерных изображений становится намного проще и удобнее.
Примеры основных элементарных преобразований, выражаемых с помощью матрицы однородных координат:
Результирующее преобразование представляет собой совокупность последовательных поворотов с заданными углами , вокруг координатных осей декартовой системы координат, связанной с рассматриваемым объектом сцены и записывается в итоге как произведение матриц Mx×My×Mz. Таким образом можно описать поворот системы координат объекта вокруг положения ее центра относительно фиксированной системы координат, связанной, например, с экраном, на произвольный угол. Из аналитической геометрии известно, что последовательно выполняемые повороты некоммутативны, то есть результат зависит от порядка, в котором повороты совершались. В нашем случае, когда матрица M изначально транспонирована для последующего умножения на вертикальный вектор координат (так как это принято в OpenGL), координаты точки после преобразования вычисляются так:
Вообще говоря, любое заданное направление осей объектной системы координат можно получить, выполняя триповорота вокруг двух координатных осей, при этом для первого ( ) и третьего ( ) поворота берется одна ось, которая в процессе преобразования сама поворачивается ( ). Использовать такое преобразование предложил Леонард Эйлер, исследовавший вращения планет и волчков.
На рисунке представлена схема поворота системы координат из положения [x', y', z'], совпадающего с положением экранной системы координат, в некое произвольное положение [x, y, z]. При этом координаты видовой системы, связанной с объектом сцены, будут выражаться через координаты экранной системы с помощью легко получаемых выражений. Записанные ниже результирующие соотношения, определяющие положение точки с видовыми координатами (x, y, z) в координатах (X, Y, Z) экранной системы, приведены уже в виде произведения трехмерной матрицы преобразований на компоненты вектора (x, y, z):
Рассмотрим ещё несколько примеров матриц аффинных преобразований в однородных нормализованных координатах (все матрицы невырожденные):
Таким образом, совокупность операции по преобразованию координат предмета описывается произведением матриц, которое затем приводится к единой матрице для всех элементов и точек объекта. Предположим, что задано осуществить повороты предмета на угол вокруг оси, параллельной оси x, и на угол вокруг оси z, проходящих через точку с координатами (x0, y0, z0). Эта операция будет описываться произведением четырех матриц: матрицы, описывающей сдвиг для совмещения точки (x0, y0, z0) с началом координат; двух матриц, описывающих повороты вокруг соответствующих осей; матрицы, описывающей сдвиг для возвращения точки в первоначальное положение.
Рассмотрим похожий пример, но только для плоскости: пусть нам нужно получить функцию расчёта координат (X, Y) для поворота вокруг центра с координатами (x0, y0):
Наиболее употребительными в компьютерной графике являются декартовы системы координат, как способ удобного создания абстракций реальных предметов окружающего мира. Цилиндрические, сферические, проективные и различные другие координаты в пространстве обычно используются для моделирования специальных эффектов при деформации объектов.
При отображении пространственных объектов используют понятие мировых координат - трёхмерных декартовых координат пространства, в котором размещаются объекты. Каждый из объектов обычно имеет собственную объектную систему координат. И, наконец, экранная система координат связана с тем графическим устройством, где в заданной проекции на картинной плоскости (в общем случае - картинной поверхности) отображается создаваемая трёхмерная сцена. Так как практически все устройства графического вывода являются плоскостными, то две из трёх экранных координат (X и Y) располагаются в плоскости экрана соответственно по горизонтали и вертикали, а координата Z направлена перпендикулярно им (если "вглубь" экрана, то получившаяся система координат левосторонняя).
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|