Я могу интерполировать вращение от двух Кватернионов, созданных из Отклонения от курса/Подачи/списка?

Да, вам нужно user_id = Column(Integer, ForeignKey('users.id')) или user_id = Column(Integer, ForeignKey('users.id'), nullable=False), если это обязательно. Это напрямую переведено на FOREIGN KEY в базовой схеме базы данных, никакой магии.

Простой способ объявить отношения - это user = relationship(Users) в OpenID классе. Вы также можете использовать users = relationship('OpenID') в Users классе. Параметр backref позволяет объявлять обе связи одним объявлением: это означает автоматическую установку обратной связи в связанном классе. Лично я предпочитаю использовать backref -s только для самообращающихся отношений. Причина в том, что мне нравится самодокументированный код: когда вы просматриваете его определение, вы видите все определенные свойства, в то время как в backref вам нужно просматривать другие классы (вероятно, определенные в других модулях).

8
задан codymanix 6 November 2009 в 00:41
поделиться

3 ответа

Да, можно. Проблема с углами Эйлера заключается в блокировке кардана, в которой некоторые ориентации имеют на одну степень свободы меньше. Когда вы конвертируете углы Эйлера в кватернион, эта проблема решается. Вы можете преобразовать практически любое трехмерное представление оси в форму кватерниона и обратно без потери информации. Матрицы должны быть изотропными (без масштаба или сдвига), а векторы должны быть единичной длины.

Линейная интерполяция между кватернионами называется slerp . Квадратичная интерполяция между кватернионами называется отрядом . Поскольку кватернионы - это просто комплексные числа с тремя мнимыми частями, те же уравнения, которые работают с действительными числами и векторами, применяются к кватернионам. Просто не забудьте использовать правильные правила при умножении, сложении, журнале и возведении в степень. Это может помочь вообразить, что мнимые части i, j и k вместе образуют вектор оси, а действительная часть - это масштаб.

8
ответ дан 5 December 2019 в 10:04
поделиться

Да и нет. Вот хорошее обсуждение: http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/

Обратите внимание, что не имеет значения, как вы получили кватернионы, применяются те же правила.

Edit: Я использовал исходный код, представленный в документе, для ряда проектов и могу за него поручиться.

4
ответ дан 5 December 2019 в 10:04
поделиться

Вы можете интерполировать между кватернионами. Однажды я написал генератор анимации ключевых кадров на основе кватернионов, который генерировал кадры для систем рендеринга из нескольких конкретных точек. Я не могу поделиться кодом, потому что он засекречен :-(

Где-то в 80-х была статья на эту тему в протоколе SIGGRAPH. Основное преимущество кватернионов состоит в том, что нет сингулярности, как в случае с углами Эйлера.

А, вот ссылка:

Шумейкер, Кен «Анимация вращения с помощью кватернионных кривых», SIGGRAPH '85, Сан-Франциско, 22-26 июля 1985 г., том 19, № 3, 1985 ACM 0- 89791-166-0 / 85/007/0245, стр. 245-254.

5
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: