Matemática :: Quaternion.

matemática :: Quaternion é uma classe Perl para representar quaternições.
Baixe Agora

Matemática :: Quaternion. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Jonathan Chin
  • Site do editor:
  • http://search.cpan.org/~jchin/

Matemática :: Quaternion. Tag


Matemática :: Quaternion. Descrição

Matemática :: Quaternion é uma classe Perl para representar quaternições. Matemática :: Quaternion é uma classe Perl para representar quaternions.synopsis usar matemática :: Quaternion QW (SLERP); Meu $ Q = Matemática :: Quaternion-> Novo; # Faça uma nova unidade Quaternion # Faça uma rotação sobre o eixo (0,1,0) Minha $ Q2 = Matemática :: Quaternion-> NOVO ({AXIS => , Ângulo => 0.1}) ; meu @V = (1,2,3); # Um vetor. meu @Vrotated = $ Q2-> rotate_vector (@V); # Gire @V sobre (0,1,0). Meu $ Q3 = Matemática :: Quaternion :: Rotação (0.7,2,1,4); # Uma rotação diferente. Meu $ Q4 = SLERP ($ Q2, $ Q3.0.5); # Rotação interpolada. Meu @Vinterp = $ Q4-> Rotate_Vector (@V); Este pacote permite criar e manipular quaternições. Uma quaternion é um objeto matemático desenvolvido como uma espécie de generalização de números complexos, geralmente representados por uma matriz de quatro números reais, e é freqüentemente usado para representar rotações no espaço tridimensional. Veja, por exemplo, http: // mathworld. wolfram.com/quaternion.html Para mais detalhes sobre a matemática de Quaternions.Quaternions pode ser adicionado, subtraído e dimensionado apenas como números complexos ou vetores - eles também podem ser multiplicados, mas a multiplicação de quaternion não comutar. Ou seja, se você tiver Quaternões $ Q1 e $ Q2, em geral $ Q1 * $ Q2! = $ Q2 * $ Q1. Isto está relacionado ao seu uso na representação de rotações, que também não se movam. Se você quer apenas representar rotações e não se importar com os detalhes matemáticos internos, isso deve ser tudo que você precisa saber: Todas as quordernas têm uma quantidade chamada "Norm", semelhante ao comprimento de um vetor. Uma quaternião com norma igual a 1 é chamada de "unidade quaternion". Todas as Quaternões que representam as rotações são a unidade Quaternions. se você ligar para novo () sem nenhum argumento, ele lhe dará uma unidade quaternion que não representa rotação: $ Q = Matemática :: Quaternion-> Novo; você pode fazer uma quaternion que representa uma quaternion rotação de um dado ângulo (em radianos) sobre um dado eixo: $ qrot = math :: quaternion-> novo ({eixo => 0.1, ângulo => }); diga que você tem duas rotações, $ Q1 e $ Q2, e você quer fazer uma quaternion representando uma rotação de $ Q1 seguido por $ Q2. Então, você faz: $ Q3 = $ Q2 * $ Q1; # Girar por $ Q1, seguido por $ Q2.Remember que isso não é o mesmo que $ Q1 * $ Q2, que irá reverter a ordem das rotações. Se você executar muitas operações de quaternion iteradas, o resultado pode não ser uma unidade quaternion devido a imprecisões numéricas. Você pode garantir que qualquer quaternion tenha comprimento da unidade, fazendo: $ unitquat = $ anyQuat-> normalize; se você tiver uma quaternion de rotação, e você quiser encontrar a matriz 3x3, que representa a rotação correspondente, então: @matrix = $ Q -> Matrix3x3; Da mesma forma, você pode gerar uma matriz 4x4 do tipo que passaria para OpenGL: @glmatrix = $ Q-> matrix4x4; se você tiver um vetor representando uma direção, e você quer girar o vetor de uma quaternion $ Q: meu @Vector = (0,0,1); # Vector apontando na direção z. meu @newvec = $ Q-> rotate_vector (@Vector); # Nova direção.say você está usando quaternions para representar a orientação de uma câmera, e você tem duas quaternões: uma para representar uma orientação inicial, e outra para representar uma posição de acabamento. Se você quiser encontrar todas as quaternões representando as orientações entre, permitindo que sua câmera se mova suavemente do início ao final, use a rotina SLERP (): Use matemática :: Quaternion QW (SLERP); meu ($ qstart, $ qend) = ...; # Defina $ tween para 9 pontos entre início e fim, exclusivo. para o meu $ t (1..9) {my $ tween = slamp ($ qstart, $ qend, 0,1 * $ t); ...} Requisitos: · Perl.


Matemática :: Quaternion. Software Relacionado

Classe :: dbi :: fábrica

Classe :: DBI :: Factory é uma interface de fábrica para um conjunto de classes de classe :: DBI, com o esqueleto opcional do aplicativo mod_perl. ...

187

Download

svnauto

Svnauto é uma ferramenta de verificação automática para subversão, com políticas de verificação de diretório. ...

63

Download