Я использую выражение2 для программирования поведения в моде Гарри. Expression2 (ссылка на архив)
Хорошо, так, чтобы создать прецедент. В Gmod у меня есть блок, и я совершенно не понимаю, как заставить его вращаться вокруг 3 векторов вверх, вниз и вправо (которые являются локальными, т. Е. Если я наклоню его на 45 градусов, прямой вектор будет 0,707, 0,707, 0). По сути, из трех векторов я хотел бы иметь возможность получить локальный шаг / крен / рыскание. Под Local Pitch Roll Yaw я подразумеваю, что они полностью независимы друг от друга, обеспечивая истинное трехмерное вращение. Так например; если я размещу свой корабль так, чтобы его нос был параллелен полу, X, Y, Z будут равны 0,0,0. Если я поверну его параллельно полу (мировой и локальный рыскание) на 90 градусов, то теперь он будет 0, 0, 90. Если я затем поверну его (мировой кувырок, локальный тангаж) на 180 градусов, это будет теперь 180, 0, 90. Я уже изучил кватернионы, однако я не считаю, что должен публиковать здесь свой код, поскольку думаю, что заново изобретал колесо.
Я знаю, что не объяснил это хорошо, но я считаю, что проблема довольно общая. Любая помощь, которую кто-либо может предложить, очень ценится.
О, я бы тоже хотел избежать гибллока.
По сути, вычисление вращения вокруг каждого из векторов вверх/вперед/вправо с использованием векторов вверх/вперед/вправо.
Просто задать вопрос об общей реализации, а не о конкретной для Gmod, абсолютно нормально.