Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4. Преобразование координат.doc
Скачиваний:
7
Добавлен:
09.11.2019
Размер:
706.05 Кб
Скачать

4. Преобразование координат

4.1. Представление вектора в однородной форме

В компьютерной графике приходиться манипулировать не только с точками, но и с векторами. В пространстве любой размерности точка и вектор описываются одинаковым числом параметров и в структуре хранения могут оказаться не различимыми. Действительно, такая запись

может означать как точку A, так и вектор A, как на рис. 4.1.

Представление в однородных координатах позволяет избавиться от такой неоднозначности. Принята договоренность считать:

– точка A; – вектор A.

Соглашение оказалось удачным, поскольку при этом:

- легко отличается точка от вектора;

- структура хранения данных единая как для точки, так и для вектора;

- соблюдаются все правила выполнения операций над векторами и точками.

Первые два утверждения очевидны. Проиллюстрируем последнее.

1) сумма двух векторов – вектор:

;

2) сумма точки и вектора – точка:

;

3) разность двух точек – вектор:

;

4) произведение скалярной величины на вектор – вектор:

;

5) линейная комбинация векторов – вектор:

; ;

(a, b – скалярные величины).

4.2. Преобразования координат в 2d, координатный фрейм

При изучении задачи преобразования модели использовали аффинные преобразования:

A1 = M01A0.

При этом предполагалось – A0 – точка A в начальном положении в некоторой СК, A1 – та же точка в новом положении в той же СК.

Взглянем на эти преобразования по другому. Будем понимать: A0 – точка A в исходной системе координат СК0 X0Y0, A1 – та же точка A в новой СК1 X1Y1; M01 – матрица преобразования точки A из СК0 в СК1.

Эта задача имеет другой геометрический смысл, отличный от ранее изученной, хотя при этом используются одни и те же преобразования. Чтобы отличить их, поменяем условные обозначения, вместо

будем использовать

,

когда речь идет о преобразованиях координат.

Таким образом это преобразование координат точки A из системы координат СК0 в СК1, где A0 – точка A в СК0; A1 – та же точка в СК1; F01 – матрица аффинных преобразований в однородной форме.

Можно получить обратное соотношение ; естественно считать матрицей преобразования из СК1 в СК0 и обозначать F10. Следовательно

, , .

Как и в случае преобразования модели, нам следует научиться целенаправленно назначать элементы матриц F01 и F10. Ни какая из них не имеет ни каких преимуществ перед другой, но, из соображений ясности понимания этого вопроса, удобнее изучать его с матрицей F10.

Н а рис. 4.2 изображена исходная СК0 X0Y0 и новая СК1 X1Y1. СК1 задана относительно СК0: S – точка начала координат СК1; U – орт оси X1; V – орт оси Y1. Нам надо решить вопрос – если

есть матрица преобразования из СК1 в СК0 и СК0 – исходная (начальная), то где находится начало СК1 относительно СК0 (где находится точка S в СК0), как направлены координатные оси X1 и Y1 относительно СК0 (каковы единичные вектора U и V относительно СК0).

Точка S в системе координат СК1 есть начало координат, представление ее в СК1 будет:

.

Поскольку F10 – матрица преобразования координат из СК1 в СК0, то эта же точка в системе координат СК0 будет:

.

Следовательно, последний столбец в матрице F10 задает положение начала координат СК1 относительно СК0.

Вектор U – орт оси X1 СК1. Представление его в СК X1Y1 будет

.

Этот же вектор после преобразования в СК0

.

Следовательно, первый столбец в матрице F10 задает единичный вектор оси X1 относительно СК0.

Вектор V – орт оси Y1 СК1. Представление его в СК X1Y1 будет

.

Этот же вектор после его преобразования в СК0

.

Следовательно, второй столбец в матрице F10 задает единичный вектор оси Y1 относительно СКО.

Общее правило. В матрице

,

  • когда она понимается как координатный фрейм:

  • первый столбец задает единичный вектор оси X1 системы координат СК1 относительно СК0;

  • второй столбец – единичный вектор оси Y1 СК1 относительно СК0;

  • третий столбец – точку положения начала СК1 относительно СК0.

В матрице

,

когда она понимается как координатный фрейм:

  • первый столбец задает единичный вектор оси X0 системы координат СК0 относительно СК1;

  • второй столбец – единичный вектор оси Y0 системы координат СК0 относительно СК1;

  • третий столбец – точку положения начала СК0 относительно СК1.

Матрицы F01 и F10 – обратные, т.е. , и . Учитывая изложенное, рис. 4.2 можно уточнить, как это сделано на рис. 4.3.

М атрицы F10 и F01 определены как матрицы преобразования координат из СК1 в СК0 и из СК0 в СК1 соответственно. Но оказалось, что эти матрицы можно понимать и как матрицы, задающие систему координат СК1 относительно СК0 (F10) или СК0 относительно СК1 (F01). По этой причине, когда речь идет о преобразованиях координат, матрицу преобразования координат называют еще и координатным фреймом, вкладывая в это понятие другой смысл, как матрицы, задающей одну систему координат относительно другой. Понятие координатный фрейм в некоторых случаях существенно облегчает решение задач преобразования координат.

Например, в исходной СК0 задана новая СК1 (рис. 4.4).

Надо получить матрицу преобразования координат из СК1 в СК0, т.е. F10. Как взяться за такую задачу? Вспомним, что F10 одновременно является координатным фреймом, задающим привязку СК1 относительно СК0. При таком толковании F10 ее третий столбец будет точка, задающая начало СК1: ; первый столбец будет представлением единичного вектора оси X1 в СК0: ; второй столбец будет представлением единичного вектора оси Y1 в СК0: . Собрав все вместе, получаем

,

т.е. матрицу преобразования координат из СК X1Y1 на рис. 4.4 в СК X0Y0.

Матрица преобразования F01 может быть получена так: :

.

Еще несколько простых примеров.

; ; ; ; .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]