Unuo kvaropoj, ankaŭ konataj kiel versor'oj, disponigas oportunan matematikan skribmanieron por reprezentado de orientiĝoj kaj rotacioj de objektoj en tri dimensioj.
Komparitaj al Euler-anguloj ili estas pli simplaj kunmeti kaj eviti la problemon de gimbalseruro.
Komparitaj al rotaciomatricoj ili estas pli kompaktaj, pli nombre stabilaj, kaj povas esti pli efikaj.
Kvaropoj havas aplikojn en komputila grafiko, komputila vizio, robotiko, navigacio, molekula dinamiko, flugdinamiko, [1]
enorbita mekaniko de satelitoj [2] kaj kristalografa tekstur analizo.
#000001
Se uzite por reprezenti rotacion, unuokvaropoj ankaŭ estas nomitaj rotaciokvaropoj.
Se uzite por reprezenti orientiĝon (rotacio relative al referenco koordinatsistemo), ili estas nomitaj orientiĝokvaropoj aŭ sintenkvaropoj.
#000002
Diferencigo kun respekto al la rotaciokvaropo
#000004
1 Bildigante la spacon de rotacioj
2 Parameterigante la spacon de rotacioj
#000006
Konvertiĝo al kaj de la matricreprezentantaro 5.2-a
1 De kvaropo ĝis ortogonala matrico
2 De ortogonala matrico ĝis kvaropo
#000007
1 De kvaropo ĝis ortogonala matrico
2 De ortogonala matrico ĝis kvaropo
#000008
En 3-dimensia spaco, laŭ la rotacioteoremo de Euler, ĉiu rotacio aŭ sekvenco de rotacioj de rigida korpo aŭ koordinatsistemo ĉirkaŭ fikspunkto estas ekvivalenta al ununura rotacio de antaŭfiksita angulo θ koncerne fiksan akson (nomitan la Euler-akso) kiu kuras tra la fikspunkto.
La Euler-akso estas tipe reprezentita per unuoblavektora u → .
Tial, ĉiu rotacio en tri dimensioj povas esti reprezentita kiel kombinaĵo de vektoro u → kaj skalarθ.
Kvaropoj kolapsas simplan ĉifri tiun aks-angulan reprezentantaron en kvar nombroj, kaj povas esti uzitaj por apliki la ekvivalentan rotacion al poziciovektoro, reprezentante punkton relative al la origino en R 3 .
#000009
Vektoro kiel ekzemple (2, 3, 4) aŭ ( hakilo , jeso , az ) povas esti rewriten kiel 2 mi + 3 j + 4 k aŭ hakilo mi + jeso j + az k , kie mi , j , k estas unuoblaj vektoroj reprezentantaj la tri kartezajn aksojn.
Rotacio tra angulo de θ ĉirkaŭ la akso difinita per unuobla vektoro
#000010
povas esti reprezentita per kvaropo.
Tio povas esti farita uzante etendaĵon de eŭlera formulo:
#000011
uzante la Hamilton-produkton, kie p
pks ′, py ′, pz ′) estas la nova poziciovektoro de la punkto post la rotacio.
En programeca efektivigo, tio estas atingita konstruante kvaropon kies vektorparto estas p kaj reela parto estas nul kaj tiam elfaranta la kvaropmultiplikon.
La vektorparto de la rezulta kvaropo estas la dezirata vektoro p.
#000012
Matematike, tiu operacio portas la aron de ĉiu "puraj" kvaropoj p (tiuj kun reela parto egala al nul) - kiuj konsistigas 3-dimensian spacon inter la kvaropoj - en si mem, per la dezirata rotacio koncerne la akson u , de la angulo θ.
(Ĉiu reala kvaropo estas portita en si mem per tiu operacio.
Krom por la celo de rotacioj en 3-dimensia spaco, ni ignoras la realajn kvaropojn.
#000013
La rotacio estas dekstruma se nia vidlinio indikas en la sama direkto kiel u → .
#000014
En tiu kazo, q estas unuokvaropo kaj
#000015
Ĝi sekvas tiun konjugacion de la produkto de du kvaropoj estas la kunmetaĵo de konjugacioj de tiuj kvaropoj: Se p kaj q estas unuokvaropoj, tiam rotacio (konjugacio) de pq estas
#000016
kiun la sama kiel rotacias (konjugante) de q kaj tiam de p .
La skalarkomponento de la rezulto estas nepre nul.
#000017
La kvadrato de kvaroprotacio estas rotacio de dufoje la angulo ĉirkaŭ la sama akso.
Pli ĝenerale q n estas rotacio de n tempigas la angulon ĉirkaŭ la sama akso kiel q .
Tio povas esti etendita al arbitra reala n, enkalkulante glatan interpoladon inter spacaj orientiĝoj;
#000018
Du rotaciokvaropoj povas esti kombinitaj en unu ekvivalentan kvaropon fare de la rilato:
#000019
en kiu q ′ egalrilatas al la rotacio q 1 sekvite per la rotacio q 2 .
(Noto tiu kvaropmultipliko ne estas kommutativaj.
Tiel, arbitra nombro da rotacioj povas esti kunmetita kune kaj tiam uzita kiel ununura rotacio.
#000020
Konjuganta p de q rilatas al la operacio p ↦ q p q −1 .
#000021
Ni tial traktas konjugacion de la unuokvaropo
#000022
Se f estas la rotaciofunkcio,
#000023
Povas esti pruvite ke la inversa de unuokvaropo akiriĝas simple ŝanĝante la signon de ĝiaj imagaj komponentoj.
#000024
Tio povas esti simpligita, uzante la ordinarajn regulojn por kvaroparitmetiko, al
#000025
Kiel atendite, la rotacio egalrilatas al konservado de kubo tenis fiksa ĉe unu poento, kaj rotaciado de ĝi 120° koncerne la longan diagonalon tra la fikspunkto (observu kiel la tri aksoj estas permutitaj cikle).
#000026
Lasu nin montri kiel ni atingis la antaŭan rezulton.
Lasu nin evoluigi la esprimon de f (en du stadioj), kaj uzu la regulojn
#000027
kiu estas la atendata rezulto.
Ĉar ni povas vidi, tiaj komputadoj estas relative longaj kaj tedaj se farite mane;
tamen, en komputila programo, tio kvantoj al anoncado de la kvaropan multiplikrutino dufoje.
#000028
Kiel kun aliaj kabaloj uzi rotaciojn, la centro de rotacio devas esti tradukita al la origino antaŭ ol la rotacio estas uzita kaj tradukita reen al sia origina pozicio poste.
#000029
Zorgo devus esti elmontrita kiam la kvaropo aliras la identecon, ĉar pro degenereco la akso de identecrotacio ne estas klare difinita.
#000030
Ni rotacios la vektoron p koncerne la vektoron je 90 gradoj
#000031
La rotaciita kvarop p' q p q ÷ devas esti nuancita kun respekto al la rotacia kvaropo q , kiam la rotacio estas laŭtaksa de nombra Optimumigo.
La takso de rotacioperspektivo estas esenca proceduro en 3D-objekta registrado aŭ fotilalĝustigo.
La derivaĵo povas esti reprezentita utiligante la Matrix Calculus notacion.
#000033
Derivaĵo povas esti trovita enen.
#000034
La kompleksaj nombroj povas esti difinitaj lanĉante abstraktan simbolon mi kiu kontentigas la kutimajn regulojn de algebro kaj plie la regulon mi 2 = −1.
Tio estas sufiĉa reprodukti ĉiujn la reguloj de kompleksanombra aritmetiko: ekzemple:
#000035
En laŭ la saman manieron la kvaropoj povas esti difinita lanĉante abstraktajn simbolojn mi , j , k kiuj kontentigas la regulojn mi 2 = j 2 = k 2 = mi j k = −1 kaj la kutimaj algebraj reguloj krom la kommutativa leĝo de multipliko (konata ekzemplo de tia nonkomutative-multipliko estas matrica multipliko).
El tio ĉiuj la reguloj de kvaroparitmetiko sekvas: ekzemple, oni povas montri tion:
#000036
Kiam kvaropoj estas uzitaj en geometrio, estas pli oportune difini ilin kiel skalarpluson vektoron:
#000037
Tiuj kiuj studis vektorojn en la lernejo eble trovos stranga aldoni nombron al vektoro, ĉar ili estas objektoj de tre malsamaj naturoj, aŭ multobligi du vektorojn kune, ĉar tiu operacio estas kutime nedifinita.
Tamen, se oni memoras ke ĝi estas nura notacio por la realaj kaj imaginaraj partoj de kvaropo, ĝi iĝas pli legitima.
En aliaj vortoj, la ĝusta rezonado estas la aldono de du kvaropoj, unu kun nul vektoro /imaginara parto, kaj another unu kun nul skalaro-/ reela parto:
#000038
Ni povas esprimi kvaropmultiplikon en la moderna lingvo de vektorkruco kaj skalarproduktoj (kiuj estis fakte inspiritaj per la kvaropoj en la unua loko [5] ).
Dum multobligado de la vektoro/imaginaraj partoj, modloko de la reguloj mi 2 = j 2 = k 2 = ijk = −1 ni havas la kvaropan multiplikregulon:
#000039
Kvaropmultipliko estas nonkomutative (pro la vektora produto, kiu kontraŭcommutes), dum skalar-skalaraj kaj skalar-vektoraj multiplikoj navedas.
El tiuj reguloj ĝi tuj sekvas tion ( vidu detalojn):
#000040
La (maldekstre kaj dekstre) multiplika inversa aŭ reciproka de nonzerkvaropo ricevas per la konjugat-al-norma rilatumo ( vidu detalojn):
#000041
kiel povas esti konfirmita per rekta kalkulo.
#000042
Nia celo estas montri tion
#000043
Tio estas la formulo de rotacio de α ĉirkaŭ la u → akso.
#000044
Tre formala klarigo de la trajtoj uzitaj en tiu sekcio ricevas fare de Altman.
#000045
Bildigante la spacon de rotacioj
#000046
Unuokvaropoj reprezentas la grupon de Eŭklidaj rotacioj en tri dimensioj laŭ tre simpla maniero.
La korespondado inter rotacioj kaj kvaropoj povas esti komprenita unue bildigante la spacon de rotacioj mem.
#000047
Parameterigante la spacon de rotacioj
#000051
Ni povas parameterigi la surfacon de sfero kun du koordinatoj, kiel ekzemple latitudo kaj longitudo.
Sed latitudo kaj longitudo estas mis-kondutitaj ( degenerita) ĉe la nordaj kaj sudaj polusoj, kvankam la poloj ne estas interne diferencaj de iuj aliaj punktoj sur la sfero.
Ĉe la polusoj (latitudoj +90° kaj −90°), la longitudo iĝas sensenca.
#000052
Povas esti montrite ke neniu du-parametra koordinatsistemo povas eviti tian degenerecon.
Ni povas eviti tiajn problemojn enkonstruante la sferon en tri-dimensia spaco kaj parameterigante ĝin kun tri kartezaj koordinatoj ( w, x, y), lokante la nordan poluson ĉe ( w, x, y) = (1, 0, 0), la suda poluso ĉe ( w, x, y) = (−1, 0, 0), kaj la ekvatoro ĉe w = 0, x 2 + y 2 = 1.
Punktoj sur la sfero kontentigas la limon w 2 + x 2 + y 2 = 1, tiel ke ni daŭre havas nur du gradojn da libereco kvankam ekzistas tri koordinatoj.
#000053
En laŭ la saman manieron la hipersfera spaco de 3D rotacioj povas esti parameterigita per tri anguloj ( Euler-anguloj), sed eventuala tia parametroigo estas degenerita ĉe kelkaj punktoj sur la hipersfero, kondukante al la problemo de gimbalseruro.
Ni povas eviti tion uzante kvar Eŭklidajn koordinatojn w, x, y, z , kun w 2 + x 2 + y 2 + z 2 = 1.
#000054
Klarigante la trajtojn de kvaropoj kun rotacioj
#000055
La multipliko de kvaropoj estas ne-kommutativa.
Tiu fakto klarigas kiel kun la p ↦ q p q −1 formulo povas labori entute, havante q q −1 = 1 de difino.
Ĉar la multipliko da unuokvaropoj egalrilatas al la kunmetaĵo de tridimensiaj rotacioj, tiu posedaĵo povas fariĝi intuicia per montrado ke tridimensiaj rotacioj ne estas kommutativaj ĝenerale.
#000056
Aro du libroj plej proksime al unu la alian.
Rotaciu unu el ili 90 gradoj dekstruma ĉirkaŭ la z akso, tiam turnas al ĝi 180 gradojn ĉirkaŭ la absciso.
Prenu la alian libron, ĵetas ĝi 180° ĉirkaŭ absciso unue, kaj 90° dekstrumaj ĉirkaŭ z poste.
La du libroj ne finas supren paralelon.
Tio montras ke, ĝenerale, la kunmetaĵo de du malsamaj rotacioj proksimume du apartaj spacaj aksoj ne navedos.
#000057
La vektoro vektora produto, uzita por difini la aks-angulan reprezentantaron, transigas orientiĝon ("handedness") al spaco: en tridimensia vektora spaco, la tri vektoroj en la ekvacio × b = c ĉiam formos lertan aron (aŭ maldekstramana aro, depende de kiel la vektora produto estas difinita), tiel fiksante orientiĝon en la vektora spaco.
Alternative, la dependeco de orientiĝo estas esprimita en rilatado al tia u → kiu precizigas rotacion kiel al aksaj vektoroj .
En kvaterniona formalismo la elekto de orientiĝo de la spaco egalrilatas al ordo de multipliko:
ij = k sed jus
Se oni inversigas la orientiĝon, tiam la formulo supre iĝas p ↦ q −1 p q , t.e., trupo da q estas anstataŭigita kun la konjugatkvaropo - la sama konduto en aksaj vektoroj.
#000058
Komparo kun aliaj reprezentadoj de rotacioj
#000059
La reprezentado de rotacio kiel kvaropo (4 nombroj) estas pli kompakta ol la reprezentantaro kiel ortogonala matrico (9 nombroj).
Krome, por antaŭfiksita akso kaj angulo, oni povas facile konstrui la ekvivalentan kvaropon, kaj inverse, por antaŭfiksita kvaropo oni povas facile legi de la akso kaj la angulo.
Ambaŭ de tiuj estas multe pli duraj kun matricoj aŭ Euler-anguloj.
#000060
En videoludoj kaj aliaj aplikoj, oni ofte estas interesita pri "glataj rotacioj", signifante ke la sceno devus malrapide rotacii kaj ne en ununura paŝo.
Tio povas esti plenumita elektante kurbon kiel ekzemple la sfera linia interpolado en la kvaropoj, kie unu finpunkto estas la identectransformo 1 (aŭ iu alia komenca rotacio) kaj la alia estaĵo la intencita fina rotacio.
Tio estas pli problema kun aliaj reprezentadoj de rotacioj.
#000061
Dum kunmetado de pluraj rotacioj sur komputilo, preterpasi erarojn nepre akumuliĝas.
Kvaropo kiun tio estas iomete erara daŭre reprezentas rotacion post estado normaligita: matrico kiun tio estas iomete erara eble ne estas ortogonala plu kaj estas pli malmola transformi reen al bonorda ortogonala matrico.
#000062
Kvaropoj ankaŭ evitas fenomenon nomitan gimbalseruro kiu povas rezulti kie, ekzemple en pitch/yaw/roll-rotaciaj sistemoj, la tonalto estas rotaciita 90° supren aŭ malsupren, tiel ke devio kaj rulo tiam egalrilatas al la sama decidpropono, kaj grado da libereco de rotacio estas perdita.
En gimbal-bazita aerospaco inercinavigacia sistemo, ekzemple, tio povus havi katastrofajn rezultojn se la aviadilo estas en kruta plonĝo aŭ supreniro.
#000063
De kvaropo ĝis ortogonala matrico
#000065
La kvaropreprezentado de tiu rotacio ricevas per:
#000067
Ankaŭ, kvaropmultipliko estas difinita kiel (supozante a kaj b estas kvaropoj, kiel z super):
#000068
kie la ordo, b estas gravaj ĉar la vektora produto de du vektoroj ne estas kommutativa.
#000069
De ortogonala matrico ĝis kvaropo
#000070
Oni devas esti singarda dum transformado de rotaciomatrico al kvaropo, ĉar pluraj simplaj metodoj tendencas esti malstabilaj kiam la spuro (sumo de la diagonalaj elementoj) de la rotaciomatrico estas nul aŭ tre malgranda.
Por stabila metodo de transformado de ortogonala matrico al kvaropo, vidas Rotaciomatricnombron Quaternion.
#000071
Ĉi-supra sekcio priskribis kiel por reakiri kvaropon q de 3 × 3
Supozi, aliflanke, ke ni havas iun matricon Q kiu ne estas pura rotacio - pro je eraroj, ekzemple - kaj ni deziras trovi la kvaropon q kiun la plej granda parto precize reprezentas Q.
En tiu kazo ni konstruas simetrian 4 × 4 matrico
#000072
kaj trovu la ajgenvektoro ( x, y, z, w) egalrilati al la plej granda Eigen-valoro (kiu valoro estos 1 se kaj nur se Q estas pura rotacio).
La kvaropo tiel akirita egalrilatos al la rotacio plej proksima al la origina matrico Q [ dubindaj - ĵetdiskoj ] [7]
#000073
Tiu sekcio diskutas la spektaklimplicojn de uzado de kvaropoj kontraŭ aliaj metodoj (akso/angulo aŭ rotaciomatricoj) por elfari rotaciojn en 3D.
#000074
÷ Noto: angulo/akso povas esti stokitaj kiel 3 elementoj multobligante la unuan rotaciakson de la duono de la rotacioperspektivo, formante la logaritmon de la kvaropo, je la kosto de kromaj kalkuloj.
#000075
÷ Noto: Kvaropoj postulas implican konvertiĝon al rotaci-simila matrico (12 multobligas kaj 12 aldonas/subtrahas), kiu ebenigas la sekvajn vektorojn rotaciante koston kun la rotacia matricmetodo
#000076
Ekzistas tri bazaj aliroj al rotaciado de vektoro v → :
#000077
Paroj de unuokvaropoj kiel rotacioj en 4D spaceto
#000079
Paro de unuokvaropoj z l kaj z r povas reprezenti ajnan rotacion en 4D spaceto.
Surbaze de kvara dimensia vektoro v → , kaj ŝajnigante ke ĝi estas kvaropo, ni povas rotacii la vektoron v → kiel tio:
#000080
La paro de matricoj reprezentas rotacion de R4.
Tial, ekzistas du navedaj subgrupoj de la aro de kvar dimensiaj rotacioj.
Arbitraj kvar dimensiaj rotacioj havas 6 gradojn da libereco, ĉiu matrico reprezentas 3 el tiuj 6 gradoj da libereco.
#000081
Ĉar la generatoroj de la kvar-dimensiaj rotacioj povas esti reprezentitaj fare de paroj de kvaropoj (jene), ĉiuj kvar-dimensiaj rotacioj ankaŭ povas esti reprezentitaj.
#000082
Konvertiĝo inter kvaropoj kaj Euler-anguloj
#000083