Шаг 12.
Основы компьютерной графики.
Координатный метод. Преобразование координат

    На этом шаге мы рассмотрим некоторые преобразования координат.

    Сначала рассмотрим общие вопросы преобразования координат. Пусть задана n-мерная система координат в базисе (k1, k2,.... kn), описывающая положение точки в пространстве с помощью числовых значений ki. В компьютерной графике чаще всего используется двумерная (n=2) и трехмерная (n=3) системы координат.

    Если задать другую, N-мерную, систему координат в базисе (m1, m2,..., mN) и поставить задачу определения координат в новой системе, зная координаты в старой, то решение (если оно существует) можно записать в таком виде:

где fi - функция пересчета i-й координаты, аргументы - координаты в системе ki.

    Можно поставить и обратную задачу - по известным координатам m1, m2,..., mN определить координаты k1, k2,.... kn. Решение обратной задачи запишем так:

где Fi - функции обратного преобразования.

    В случае, когда размерности систем координат не совпадают (n <> N), осуществить однозначное преобразование координат зачастую не удается. Например, по двумерным экранным координатам нельзя без дополнительных условий однозначно определить трехмерные координаты отображаемых объектов.

    Если размерности систем совпадают (n = N), то также возможны случаи, когда нельзя однозначно решить прямую или обратную задачи.

    Преобразование координат классифицируют:

    По виду функций преобразования различают линейные и нелинейные преобразования. Если при всех i = 1, 2, ... , N функции fi - линейные относительно аргументов (k1, k2,.... kn), то есть

  fi = ai1k1+ ai2k2+ ... + ainkn+ ai,n+1
где ai,j - константы, то такие преобразования называются линейными, а при n = N - аффинными.

    Если хотя бы для одного i функция f - нелинейная относительно (k1, k2,.... kn), тогда преобразование координат в целом не линейно.

    Например, преобразование

  X = 3х + 5y,
  Y = 4xy + 10y
нелинейное, так как в выражении для Y присутствует xy.

    Линейные преобразования наглядно записываются в матричной форме:

Здесь матрица коэффициентов ij) умножается на матрицу-столбец (ki) и в результате получается матрица-столбец (mi).

    Напомним некоторые факты из алгебры матриц. Для двух матриц А размером (m*n) и В размером (n*p):

произведением матриц является матрица С = А*В размером (m*p):

для которой элементы cij вычисляются по формуле:

    Правило вычисления элементов матрицы С можно легко запомнить по названию "строка на столбец". И действительно, для вычисления любого элемента cij необходимо умножить элементы i-й строки матрицы А на элементы j-го столбца матрицы В.

    Произведение матриц определено только для случая, когда количество столбцов матрицы А равно количеству строк матрицы В.

    Вернемся к преобразованиям координат. Рассмотрим более подробно некоторые отдельные типы преобразований.

    На следующем шаге мы рассмотрим аффинные преобразования на плоскости.




Предыдущий шаг Содержание Следующий шаг