Wiskunde :: Quaternion

MATH :: Quaternion is een PERL-klasse om quaternies weer te geven.
Download nu

Wiskunde :: Quaternion Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Jonathan Chin
  • Uitgever website:
  • http://search.cpan.org/~jchin/

Wiskunde :: Quaternion Tags


Wiskunde :: Quaternion Beschrijving

Math :: Quaternion is een Perl-klasse om quaternies weer te geven. Math :: Quaternion is een Perl-klasse om Quaternions te vertegenwoordigen. Synopsis Gebruik Math :: Quaternion QW (slerp); mijn $ q = wiskunde :: quaternion-> nieuw; # Maak een nieuwe eenheid Quaternion # Maak een rotatie over de as (0,1,0) Mijn $ Q2 = MATH :: Quaternion-> Nieuw ({axis => , hoek => 0,1}) ; mijn @v = (1,2,3); # Een vector. mijn @vrotated = $ Q2-> rotate_vector (@v); # Roteer @V over (0,1,0). Mijn $ Q3 = Wiskunde :: Quaternion :: Rotatie (07,2,1,4); # Een andere rotatie. mijn $ Q4 = slerp ($ Q2, $ Q3.5); # Interpolated rotatie. My @Vinterp = $ Q4-> Rotate_vector (@V); Met dit pakket kunt u quaternies maken en manipuleren. Een quaternion is een wiskundig object dat is ontwikkeld als een soort generalisatie van complexe getallen, meestal vertegenwoordigd door een reeks vier reële cijfers, en wordt vaak gebruikt om rotaties in driedimensionale ruimte te vertegenwoordigen. Zelf, bijvoorbeeld, http: // Mathworld. Wolfram.com/quaternion.html Voor meer informatie over de wiskunde van quaternions.quaternions kan worden toegevoegd, afgetrokken en geschaald, net als complexe getallen of vectoren - ze kunnen ook worden vermenigvuldigd, maar quaternion-vermenigvuldiging wordt niet pendeld. Dat wil zeggen, als je quaternions $ Q1 en $ Q2 hebt, dan in het algemeen $ Q1 * $ Q2! = $ Q2 * $ Q1. Dit is gerelateerd aan hun gebruik bij het representeren van rotaties, die ook niet pendelen. Als u gewoon rotaties wilt weergeven en niet om de interne wiskundige details wilt geven, zou dit alles moeten zijn om te weten: alle quaternies heeft een hoeveelheid genaamd de "norm", vergelijkbaar met de lengte van een vector. Een quaternion met norm gelijk aan 1 wordt een "eenheid quaternion" genoemd. Alle quaternies die rotaties vertegenwoordigen, zijn eenheid Quaternions. Als u nieuwe () zonder argumenten noemt, geeft het u een eenheid Quaternion die geen rotatie vertegenwoordigt: $ Q = MATH :: QUATERNION-> NIEUW; U kunt een quaternion maken die een quaternion kan maken Rotatie van een bepaalde hoek (in radialen) over een bepaalde as: $ qrot = wiskunde :: quaternion-> nieuw ({axis => 0,1, hoek => }); zeg dat je twee rotaties hebt, $ Q1 en $ Q2, en u wilt een quaternion maken die een rotatie van $ Q1 vertegenwoordigt, gevolgd door $ Q2. Dan doet u: $ Q3 = $ Q2 * $ Q1; # Draai met $ Q1, gevolgd door $ Q2.Remember dat dit niet hetzelfde is als $ Q1 * $ Q2, die de volgorde van de rotaties zal omkeren. Als u veel geëerde quaternion-operaties uitvoert, is het resultaat mogelijk niet helemaal een eenheid quaternion vanwege numerieke onnauwkeurigheden. U kunt ervoor zorgen dat elke quaternion eenheidslengte heeft, door: $ Unitquat = $ AnyQuat-> Normaliseren; als u een rotatie-quaternion hebt, en u wilt de 3x3-matrix die de overeenkomstige rotatie vertegenwoordigt, dan: @Matrix = $ Q -> Matrix3x3; Evenzo kunt u een 4x4-matrix van het soort genereren dat u doorgeeft aan OpenGL: @glmatrix = $ Q-> MATRIX4X4; als u een vector hebt die een richting vertegenwoordigt, en u de vector wilt roteren door een quaternion $ Q: My @Vector = (0,0,1); # Vector die in de Z-richting richt. mijn @newvec = $ q-> rotate_vector (@vector); # Nieuwe richting. Je gebruikt Quaternions om de richting van een camera weer te geven, en je hebt twee quaternies: een om een startoriëntatie te vertegenwoordigen, en een andere om een afwerkpositie te vertegenwoordigen. Als u alle quaternies wilt vinden die de oriëntaties hierdoor vertegenwoordigen, zodat uw camera soepel van start tot afwerking kan bewegen, gebruikt u de slerpe () Routine: Gebruik Math :: Quaternion QW (slerp); mijn ($ Qstart, $ QEND) = ...; # Set $ Tween tot 9 punten tussen begin en einde, exclusief. voor mijn $ t (1..9) {mijn $ tween = slerp ($ Qstart, $ Qend, 0,1 * $ t); ... } Vereisten: · Perl


Wiskunde :: Quaternion Gerelateerde software

Artimagen

Bibliotheek voor kunstmatige opgeladen deeltjesmicroscopie beeldgeneratie voor C ++ ...

121

Downloaden