Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Quaternion Creation Functions

Boost , Math Toolkit 2.5.0 , Chapter 9. Quaternions

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
template<typename T> quaternion<T> spherical(T const & rho, T const & theta, T const & phi1, T const & phi2);
template<typename T> quaternion<T> semipolar(T const & rho, T const & alpha, T const & theta1, T const & theta2);
template<typename T> quaternion<T> multipolar(T const & rho1, T const & theta1, T const & rho2, T const & theta2);
template<typename T> quaternion<T> cylindrospherical(T const & t, T const & radius, T const & longitude, T const & latitude);
template<typename T> quaternion<T> cylindrical(T const & r, T const & angle, T const & h1, T const & h2);

Они строят кватернионы так же, как полярные строят комплексные числа, поскольку для кватернионов нет строгого эквивалента полярных координат.

<spherical>— простая транспозиция<polar>, она принимает в качестве входов величину (положительную) и точку на гиперсфере, заданную тремя углами. Первый из них<theta>имеет естественный диапазон от<-pi>до<+pi>, а два других имеют естественный диапазон от<-pi/2>до<+pi/2>(как в случае с обычными сферическими координатами вR3). Из-за множества симметрий и периодичностей ничего не происходит, если величина отрицательная или углы находятся за пределами их естественных диапазонов. Тем не менее, ожидаемые дегенерации (величина нуля игнорирует настройки углов ...) случаются.

<cylindrical>также является простой транспозицией обычных цилиндрических координат вR3, что, в свою очередь, является еще одной производной плоских полярных координат. Первые два входа являются полярными координатами первогоСкомпонента кватерниона. Третий и четвертый входы помещаются в третий и четвертыйRкомпоненты кватерниона соответственно.

<multipolar>— ещё одно простое обобщение полярных координат. На этот раз обеCсоставляющие кватерниона приведены в полярных координатах.

<cylindrospherical>специфичен для кватернионов. Часто интересно рассматриватькак картезианский продуктRR3(кватернионное умножение как тогда особая форма, как здесь дано). Таким образом, эта функция строит кватернион из этого представления с компонентомR3, заданным в обычныхR3сферических координатах.

<semipolar>— другой генератор, специфичный для кватернионов. Он принимает в качестве первого входа величину кватерниона, в качестве второго входа угол в диапазоне<0>до<+pi/2>таким, что величины первых двухCкомпонентов кватерниона являются произведением первого входа и синуса и косинуса этого угла, соответственно, и, наконец, в качестве третьего и четвертого входных углов в диапазоне<-pi/2>до<+pi/2>, которые представляют собой аргументы первого и второгоCкомпонентов кватерниона соответственно. Как обычно, ничего не происходит неблагоприятным, если величины являются отрицательными числами или углы находятся за пределами их естественных диапазонов, как симметрии и периодичности.

В этой версии нашей реализации кватернионов нет аналога операции комплексного значения<arg>, поскольку ситуация несколько сложнее. Единичные кватернионы связаны как с вращениями вR3, так и вR4, и соответствия не слишком сложны, но в настоящее время отсутствует стандартная (де-факто или де-юре) матричная библиотека, с которой могли бы работать преобразования. Это следует исправить в ходе дальнейшего пересмотра. В среднем пример того, как это можно сделать, представлен здесь дляR3, и здесь дляRпример тестового файла.


PrevUpHomeNext

Статья Quaternion Creation Functions раздела Math Toolkit 2.5.0 Chapter 9. Quaternions может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 9. Quaternions ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:14:33/0.0061731338500977/1