Читайте также:
|
|
(Двумерных)
При работе с Гибкой системой объект подвергается сразу нескольким преобразованиям. Для получения желаемого результата используют композицию преобразований, объединяя матрицы . К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом.
Рассмотрим, например, поворот объекта относительно некоторой точки .
Но до этого был рассмотрен поворот относительно начала координат. Для решения этой задачи разобьем ее на три части (три элементарных преобразования):
1. Перенос (точку в начало координат), .
2. Поворот, .
3. Перенос (точку из начала координат назад), .
Результирующее преобразование имеет вид: или:
Этот пример хорошо иллюстрирует, как применение однородных координат упрощает задачу.
Аналогично, если надо промасштабировать объект относительно точки , а не начала координат, то надо:
1. Перенести точку в начало координат, .
2. Масштабировать, .
3. Перенести точку назад, .
Результат имеет вид:
Если нам надо промасштабировать, повернуть и расположить в нужном месте домик. Центром поворота и масштабирования является точка .
Необходимо выполнить:
1. Перенос (точку в начало координат), .
2. Масштабирование, .
3. Поворот, .
4. Перенос (точку из начала координат назад), .
В структуре данных, в которой содержится это преобразование, могут находиться масштабный коэффициент , угол поворота и координаты . Но может быть и записана матрица результирующего преобразования:
.
(Трехмерных)
Путем объединения элементарных трехмерных преобразований можно получить другие преобразования.
Пример. Преобразовать из начальной позиции в конечную точку переносится в начало координат, — располагается вдоль отрицательной полуоси .
На длины отрезков преобразование не воздействует.
Для выполнения этой задачи рассмотрим четыре шага:
1. Перенос точки в начало координат.
2. Поворот вокруг оси до совмещения с плоскостью .
3. Поворот вокруг оси до совмещения с отрицательной полуосью .
Шаг 1
Применим к :
Шаг 2
Поворот вокруг оси на угол (угол положительный)
Подставляя эти выражения в матрицу поворота, находим:
Шаг 3
Поворот вокруг оси (угол отрицательный)
,
где
.
Результат поворота:
,
теперь совпадает с осью .
Дата добавления: 2015-07-14; просмотров: 174 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Перенос | | | Алгоритм Брезенхема |