З того, що я дізнався, оскільки я також студент, - це те, що ви хочете працювати з матрицями розміром , щоб обробляти обертання, масштабування та переклади так само, тобто множення на матрицю (тобто, 4 × 4 матриці).4×44×4
Пам’ятайте, що без цих матриць переклади були б представлені підсумовуванням вектора, тоді як обертання та масштабування представлені за допомогою множення відповідно з вектором та скалярним коефіцієнтом.4 × 4
Тепер питання: як ми переходимо від 3D координатних систем до 4D ? Відповідь - « однорідні координати ».
Отже, що це означає? Ми побудуємо матриці для представлення обертання, масштабування та перекладу, так що ми використовуємо лише множення матриць для представлення перетворень (наприклад, обертання, масштабування тощо). Як ми їх конструюємо окремо, це конкретніше, але ви можете подивитися в Інтернеті.4 × 4
На даний момент у нас є матриці та тривимірні вектори, що ще не корисно, оскільки ви не можете множити 4 × 4 матриці та 3 D вектори, оскільки розміри не відповідають. Ось чому, працюючи з домашніми координатами, нам також потрібно перетворити наші задані 3D-точки у відповідні 4D.4 × 44 × 43 Д
Як ми це робимо?
Ми розрізняємо напрямок і положення вектори. Напрямні вектори, як випливає з назви, мають напрямок, в якому вони вказують; ми також піклуємося про їх довжину, але переклади на них не впливають, оскільки нас не цікавить їх позиція. Вектори позиції (або просто "точки") можна перекладати або переміщувати; вони зазвичай представлені відносно походження, тобто як вектор від початку і до самої точки.
Перетворюємо 3D-вектори напрямку, додаючи в якості 4- ї координати відповідного однорідного вектора: додаємо нуль, оскільки це в основному виключає ефект перекладів. Ми робимо аналогічну річ з векторами позиції, але замість 0 додаємо 1 , з протилежної причини.0401
Наприклад, якщо у нас напрямок вектора v = ( v 1 v 2 v 3 ) , ми перетворюємо його, роблячи v ′ = ( v 1 v 2 v 3 0 ) . Аналогічно, якби у нас був точковий вектор u = ( u 1 u 2 u 3 ), ми перетворимо його на u ′ = ( u 1 u 2 u 3 1 )3 Дv = ⎛⎝⎜v1v2v3⎞⎠⎟v'= ⎛⎝⎜⎜⎜v1v2v30⎞⎠⎟⎟⎟u = ⎛⎝⎜у1у2у3⎞⎠⎟у'= ⎛⎝⎜⎜⎜у1у2у31⎞⎠⎟⎟⎟
Примітка: для перетворення з однорідних координат назад у відповідні , ви не можете просто видалити 4 t h координату, якщо вона все ще не дорівнює 1 (або 0 відповідно).3 Д4 т год10