![]() |
Исключительно математический вопрос
Всем доброго времени суток!
Вопрос в следующем: как сделать так, чтобы объект в пространстве (3D) постоянно смотрел на камеру, но только одной стороной. То есть, в точке А есть плоский объект и есть камера в точке В. Если плоский объект расположен вдоль оси Х, то все легко: Код AS3:
Но нужно сделать так, чтобы это работало вне зависимости от того, как расположен плоский объект. То есть, он может быть расположен не четко вдоль оси Х. Как я понимаю, тут нужно проделать аналогичные манипуляции с другими углами, но в связи с отсутствием каких либо знаний в тригонометрии, я не могу до этого додуматься. |
Тут не столько тригонометрия, сколько линейная алгебра/аналитическая геометрия и кватернионы (если использовать только матрицы без кватернионов некоторые операции с углами будут проблематичны)
Если я правильно понял задачу (мутно написано, рисунок нужен): - провести вектор из плоского объекта в камеру - найти минимальный угол между нормалью к плоскому объекту этим вектором - повернуть объект вокруг оси, перпендикулярной обоим этим векторам на этот угол Теорию читать на gamedev.ru |
ну вроде бы правильно понял, только, наверное, "между нормалью к плоскому объекту И этим вектором".
Проблема в том, как найти эту самую ось, перпендикулярную этим векторам. Ведь эта плоскость явно не совпадет с X, Y или Z. На теорию времени нет... =) Насчет нормали к плоскости, так она определяется? Код AS3:
|
Цитата:
А вот повернуть вокруг произвольной оси - это уже веселее. Но можно алгоритм найти на том же gamedev.ru. Единственное, там 2 способа - с помощью матриц и кватернионов - нужно использовать, тот, который с кватернионами. Цитата:
(направление нормали будет зависеть от порядка перемножения векторов) Вам же нужно чтобы эта нормаль на камеру смотрела? |
| Часовой пояс GMT +4, время: 08:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.