Компьютерная графика - трехмерное композитное преобразование
Трехмерное преобразование - это процесс манипулирования видом трехмерного объекта относительно его исходного положения путем изменения его физических атрибутов с помощью различных методов преобразования, таких как перемещение, масштабирование, поворот, сдвиг и т. Д.
Типы трансформации:
- Трансформация перевода
- Масштабирование трансформации
- Преобразование вращения
- Трансформация сдвига
- Преобразование отражения
Примечание: если нас просят одновременно выполнить три или более различных вида преобразований над точкой (P 0 ), помещенной в трехмерное пространство, и предположим, что эти преобразования равны T 1 , T 2 и T 3 соответственно, тогда что будем делать в таком случае?
Итак, мы увидим следующие решения
а) Очевидно, сначала последовательно применяя серию Преобразований по координатам объекта.
First we performed transformation T1, then Po become transformed to P1.
Secondly, we perform transformation T2 and the point P1 become transformed to P2.
Lastly, we perform transformation T3 and we get the final result i.e; P3,and we will get our final transformed point coordinate(P3).
б) Второе решение, применяя преобразование Composite за один прием.
Примечание: Здесь T 1 , T 2 , T 3 соответствуют их матричному условию преобразования.
Составное преобразование
Поскольку его название предполагает себя составным, здесь мы составляем два или более двух преобразований вместе и вычисляем результирующую (R) матрицу преобразования , умножая все соответствующие условия матрицы преобразования друг на друга.
Тот же эквивалентный результат, который мы получили в точке P 0 и преобразовали ее в P 3 в приведенном выше примере, также может быть достигнут путем прямого умножения результирующего R на точку P 0, а не выполнения преобразований T 1 , T 2 и T 3 последовательно один после одного.
И мы получаем тот же результат, что и в нашем примере выше.
Проблема: представьте, что нам дан кубоид «OABCDEFG», над которым мы хотим выполнить
- Преобразование переноса (T 1 ), если расстояния переноса равны D x = 2, D y = 3, D z = 2, то
- Масштабирующее преобразование (T 2 ), если масштабные коэффициенты s x = 2, s y = 1, s z = 3 и напоследок выполнить,
- Трансформация сдвига (T 3 ) в направлении x, если коэффициенты сдвига s y = 2 и s z = 1.
Решение: нам дан следующий кубоид

Рисунок 1
Сначала выполняем преобразование трансляции T1:
Матрица преобразования трансляции отображается как:
[Tex] hspace {4.37cm} mathbf {T_1 = left [ begin {matrix} 1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & 1 & 0 \ D_x & D_y & D_z & 1 end {matrix} right]} \ mathbf {Где hspace { 0,2 см} D_x = 2, D_y = 3 hspace {0,2 см} и hspace {0,2 см} D_z = 3 hspace {0,2 см} - это расстояние hspace {0,2 см} в трансляте hspace {0,2 см}.} [ / Tex]
Теперь примените это условие матрицы преобразования трансляции по координатам:
Для координаты O [0 0 0] вновь переведенная координата будет O 1 :
Для координаты A [0 0 4] вновь переведенная координата будет A 1 :
Для координаты B [0 4 2] вновь переведенная координата будет B 1 :
Для координаты C [2 4 0] вновь переведенная координата будет C 1 :
Для координаты D [2 2 4] вновь перенесенная координата будет D 1 :
Для координаты E [2 0 0] вновь переведенная координата будет E 1 :
Для координаты F [0 0 2] вновь перенесенная координата будет F 1 :
Для координаты G [2 0 2] вновь перенесенная координата будет G 1 :

Рис.2.
Во-вторых, говорят, что мы выполняем преобразование масштабирования T 2 :
Матрица преобразования масштабирования отображается как:
Теперь примените это условие матрицы преобразования масштабирования к координатам:
Для координаты O 1 [2 3 2] новая масштабированная координата будет O 2 :
Для координаты A 1 [2 3 6] новая масштабированная координата будет A 2 :
Для координаты B 1 [2 7 4] новая масштабированная координата будет B 2 :
Для координаты C 1 [4 7 2] новая масштабированная координата будет C 2 :
Для координаты D 1 [4 5 6] новая масштабированная координата будет D 2 :
Для координаты E 1 [4 3 2] новая масштабированная координата будет E 2 :
Для координаты F 1 [2 3 4] новая масштабированная координата будет F 2 :
Для координаты G 1 [4 3 4] новая масштабированная координата будет G 2 :

Рис.3
Наконец, мы выполняем трансформацию сдвига T 3 в направлении оси x:
Матрица преобразования сдвига для направления x отображается как:
Теперь примените это условие матрицы преобразования сдвига по координатам:
Для координаты O 2 [4 3 6] новая масштабированная координата будет O 3 :
Для координаты A 2 [4 3 18] новая масштабированная координата будет A 3 :
Для координаты B 2 [4 7 12] новая масштабированная координата будет B 3 :
Для координаты C 2 [8 7 6] новая масштабированная координата будет C 3 :
Для координаты D 2 [8 5 18] новая масштабированная координата будет D 3 :
Для координаты E 2 [8 7 6] новая масштабированная координата будет E 3 :
Для координаты F 2 [4 3 12] новая масштабированная координата будет F 3 :
Для координаты G 2 [8 3 12] новая масштабированная координата будет G 3 :
Наконец, мы получаем наш наклонный объект с измененным размером в x-направлении после выполнения преобразований T 1 , T 2 и T 3 .

Рис.4
Решение через композитное преобразование
Окончательный результат, который мы получили выше для кубоида «OABCDEF», применяя преобразование T 1 , T 2 и T 3 одно за другим в последовательном порядке, тот же эквивалентный результат также может быть получен с помощью концепции составного преобразования. Чтобы сначала выполнить составное преобразование, нам нужно вычислить матрицу результирующего преобразования (R) путем объединения всех выделенных представлений матрицы преобразования вместе.
Результирующая матрица преобразования будет рассчитана следующим образом:
Результирующее преобразование будет вычислено путем умножения матрицы преобразования преобразования на матрицу преобразования масштабирования, а результирующее (R 2 ) умножение обоих будет затем умножено на последнюю заданную матрицу преобразования сдвига.
Теперь умножьте R2 на матрицу преобразования сдвига, чтобы получить результирующее R:
Теперь примените это условие матрицы преобразования к координатам:
Для координаты O [0 0 0] новая масштабированная координата будет O 3 :
Для координаты A [0 0 4] новая масштабированная координата будет A 3 :
Для координаты B [0 4 2] новая масштабированная координата будет B 3 :
Для координаты C [2 4 0] новая масштабированная координата будет C 3 :
Для координаты D [2 2 4] новая масштабированная координата будет D 3 :
Для координаты E [2 0 0] новая масштабированная координата будет E 3 :
Для координаты F [0 0 2] новая масштабированная координата будет F 3 :
Для координаты G [2 0 2] новая масштабированная координата будет G 3 :
Здесь мы получаем окончательный результат за один выстрел:

Рис.5
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями теории CS для собеседований по SDE с помощью курса теории CS по доступной для студентов цене и будьте готовы к работе в отрасли.