Войти
ПрограммированиеФорумОбщее

исходники кватернионов и математики в разных движках (3 стр)

Страницы: 1 2 3
#30
17:43, 13 фев 2023

stratego
Если речь шла про сопряжённых то правильно в Огре и урху

#31
17:45, 13 фев 2023

stratego
Сорри не меняется исходный

#32
18:42, 13 фев 2023

}:+()___ [Smile]
> OMG:
>
> inline Quaternion &Quaternion::operator-()
> {
> x = -x;
> y = -y;
> z = -z;
> w = -w;
> return *this;
> }
> Употребление −q внезапно портит q.
a + (- b) == a - b
a * (- b) == - (a * b)
Это же та же фишка, что и с тем злополучным оператором==, плюс-минус — это операции векторного пространства, а сопряжение — должно быть отдельной функцией (в своём велосипеде я ставил на operator~ (бинарное отрицание в стд)).

#33
18:54, 13 фев 2023

Имбирная Ведьмочка
Может он имел введу шо исходный портится

#34
19:19, 13 фев 2023

это да, как если бы после
a + (- b) == a - b
сделать
а + b и получить то же самое

#35
20:57, 13 фев 2023

innuendo
> Может он имел введу шо исходный портится
А! Я понял, operator- берёт свой аргумент по ссылке и мутирует его. Прикольно.

#36
19:15, 16 фев 2023

интересно, есть какая то правильная функция для интерполяции между 3 или 4 кватернионами?
если надо смешать 4 вращения то можно сделать 4 SLERP или LERP например последовательно, по весам.
но результат будет разный при разной последовательности интерполяций.

#37
22:28, 16 фев 2023

Noir
> есть какая то правильная функция для интерполяции между 3 или 4 кватернионами?
Интерполяция между 3-мя кватернионами эквивалентна интерполяции между тремя точками на сфере, между 4-мя — четырьмя точками на гиперсфере. В принципе, если сильно надо, то можно придумать что-нибудь симметричное, однако я сомневаюсь, что есть что-то каноническое.

#38
22:58, 16 фев 2023

}:+()___ [Smile]
> Интерполяция между 3-мя кватернионами эквивалентна интерполяции между тремя
> точками на сфере, между 4-мя — четырьмя точками на гиперсфере. В принципе, если
> сильно надо, то можно придумать что-нибудь симметричное, однако я сомневаюсь,
> что есть что-то каноническое.
то есть лучше заморачиваться и сделать ((q1 + q2 + q3 + q4)/4).normalize ?

#39
17:41, 17 фев 2023

Noir
> то есть лучше заморачиваться и сделать ((q1 + q2 + q3 + q4)/4).normalize ?
Деление на 4 лишнее (нормализация же не приближенная?). И могут быть проблемы с кватернионами у которых все компоненты имеют обратный знак, сумма даст 0 но на самом деле эти кватернионы представляют одинаковые повороты.

#40
17:48, 17 фев 2023

}:+()___ [Smile]
> В принципе, если сильно надо, то можно придумать что-нибудь симметричное,
> однако я сомневаюсь, что есть что-то каноническое.
Делать несколько итераций коррекции весов исходя их получившихся угловых расстояний от интерполированного кватерниона до каждого из исходных.

#41
19:45, 17 фев 2023

amaora
> Деление на 4 лишнее (нормализация же не приближенная?). И могут быть проблемы с
> кватернионами у которых все компоненты имеют обратный знак, сумма даст 0 но на
> самом деле эти кватернионы представляют одинаковые повороты.
согласен с этими уточнениями)

Страницы: 1 2 3
ПрограммированиеФорумОбщее