Перейти к содержанию

[ПОМОЩЬ] Кватерионы в GTA?


Рекомендуемые сообщения

Приветствую! Есть ли способы/формулы для правильной конвертации кватерионов в нормальные углы ротации?

 

Пример:

 

ID#, DFF Name, Interior#, X-Coord, Y-Coord, Z-Coord, RotationX, RotationY, RotationZ, RotationW, Flags

4816, ROCKLIFF1_LAS, 0, -2139.11, 1739.76, 2.75, 1.32679e-06, 1.32679e-06, -1, 1.76038e-12, -1

 

P.S. Необходимо для конвертации карт из GTA: SA в Multi Theft Auto. :search:


KeshaSignature5.jpg

«Ламеров надо обучать. Игроков уважать. Читеров мочить в сортире». © Kesha_F1 

efoowner.gif

«Дураку закон не писан. Если писан, то не читан. Если читан, то не понят. Если понят, то не так». © Народное

Ссылка на комментарий
Поделиться на другие сайты

Приветствую! Есть ли способы/формулы для правильной конвертации кватерионов в нормальные углы ротации?

 

Пример:

 

ID#, DFF Name, Interior#, X-Coord, Y-Coord, Z-Coord, RotationX, RotationY, RotationZ, RotationW, Flags

4816, ROCKLIFF1_LAS, 0, -2139.11, 1739.76, 2.75, 1.32679e-06, 1.32679e-06, -1, 1.76038e-12, -1

 

P.S. Необходимо для конвертации карт из GTA: SA в Multi Theft Auto. :search:

Я, конечно, совсем не математик :unknw: , но может быть, поможет вот это:

 

Формулы

Онлайн-калькулятор

Это если надо "вручную". А если нужны примеры кода, забиваем в Яндекс "преобразование кватернионов в углы Эйлера", там будет куча всего.

Изменено пользователем ultramarine
Ссылка на комментарий
Поделиться на другие сайты

Среди кучи всего нашел это:

 

Кватернион имеет хитрое внутреннее строение. Его можно записать с помощью четырёх чисел: x, y, z для вектора и w для поворота

 

 

style_images/icon_plus_1.gif Раскрывающийся текст
Q59. Как должен я конвертировать кватернион в сферические углы вращения?

 

Следующий процесс преобразовывает кватернион в сферические координаты :

-----------------------

cos_angle = q -> qw;

sin_angle = sqrt( 1.0 - cos_angle * cos_angle );

angle = acos( cos_angle ) * 2 * RADIANS;

 

if ( fabs( sin_angle ) < 0.0005 )

sa = 1;

 

tx = q -> qx / sa;

ty = q -> qy / sa;

tz = q -> qz / sa;

 

latitude = -asin( ty );

 

if ( tx * tx + tz * tz < 0.0005 )

longitude = 0;

else

longitude = atan2( tx, tz ) * RADIANS;

 

if ( longitude < 0 )

longitude += 360.0;

-----------------------

Ссылка на комментарий
Поделиться на другие сайты

Кеша, спустя неделю :facepalm: (нет бы сразу туда глянуть) наткнулся на Моддинге на такую вот статью:

 

Roatation Calculator.

 

Думаю это то, что ты искал.

 

З.Ы. Если еще актуально, конечно.

Ссылка на комментарий
Поделиться на другие сайты

Говорят - лучше поздно, чем никогда. А программа может быть и другим пользователям полезна оказаться. Может её в ФА добавить (если такой или подобной программы там нет)? Изменено пользователем kenking
Ссылка на комментарий
Поделиться на другие сайты

Актуально, но эта программа имеет ряд недостатков. Она неправильно конвертирует. :cray:

 

Есть одно решение - это как-нибудь распотрошить Map Editor 0.32 под СА/ВС/3 - там рабочая и корректная формула. Программа написана на Delphi. :unknw:


KeshaSignature5.jpg

«Ламеров надо обучать. Игроков уважать. Читеров мочить в сортире». © Kesha_F1 

efoowner.gif

«Дураку закон не писан. Если писан, то не читан. Если читан, то не понят. Если понят, то не так». © Народное

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...