İnsanlar neden kuaterniyon kullanıyor?


15

Onları bir süredir kara kutu olarak kullanıyorum, sadece matematik öğreniyorum ama sadece bu sorunun kesin cevaplarını istiyorum.

Şimdiye kadar kişisel olarak karşılaştığım tek fayda SLERP'i iki açı arasında yapabilme yeteneğidir - aynı etkiyi elde etmek için etrafta oldukça çirkin bir çalışmaya ihtiyacınız var (kendiliğinden birbirine bağlanıyor).


SLERP sadece iki açı arasındaki enterpolasyon değildir: matris ile de kolayca yapılabilir. Matrislerle yapıldığında çok daha karmaşık olan iki keyfi yön arasında enterpolasyon yapabilir.
Calmarius

Yanıtlar:


23

Kuaterniyonlar birkaç problemi zarif bir şekilde çözer:

  • Eksen açısı gösterimleri kadar kompakttırlar (4 skaler değer)
  • Matris temsillerine kolayca dönüştürülebilirler.
  • İnterpolasyon, özel kasa olmadan herhangi bir başlangıçtan sona kadar çalışır
  • Asla gimbal kilit göstermezler

Diğer temsillerle bu sorunları çözebilirsiniz, ancak kuaterniyonlar algoritmik basitlikleri ve performansları için iyi bir seçimdir.


1
Bu tam olarak aradığım şey!
SirYakalot

@Kai Interpolation works from any start to end angle without special casing, aslında özel bir durum var, hiper kürenin aynı yarımküresinde değilken, bu aslında dikkate almanız gereken özel bir durum, çünkü hedefe enterpolasyon yapmak için her zaman 2 yön var ve seçmek istiyorsunuz doğru olanı
Maik Semder

2
@Kai They never exhibit gimbal lock- bu doğru değil. Sadece çarpabilirler q(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20). Doğru, gimbal kilidi önlemek için kullanılabilir, ancak matrisler, eksen açıları ve diğerleri de kullanılabilir. Yani bu, kuaterniyonların eşsiz bir özelliği değildir. Aslında bunu rotasyon gösterimlerinin çoğuyla yapabilirsiniz, ancak euler açıları. Buradaki tek gerçek mesaj "Euler İngilizceleri gimbal kilitten muzdariptir" olabilir, ancak sadece kuaterniyonlar değil, diğer birçok döndürme temsilinden de yararlanabilir.
Maik Semder

Kuaterniyonun performansı her durumda genel olarak daha iyi değildir, örneğin bir vektörün 3x3 matrisi kullanılarak döndürülmesi, bir kuaterniyon kullanmaktan daha hızlıdır. İşte ilginç bir makale.
Maik Semder

3

Bahsettiğiniz SLERP kullanımı, kuaterniyonların daha genel bir özelliğinin özel bir örneğidir: farklı döndürme değerleri arasında sorunsuz bir şekilde enterpolasyon yapabilirsiniz.

Euler açılarının dönme değerlerini enterpolasyon yaparken, garip görünümlü hareketler elde edersiniz ve eksen açısı rotasyonlarının değerlerini enterpolasyonla mantıklı bir şekilde (aynı eksen etrafındaki iki farklı açının yanı sıra) hiçbir şekilde yoktur.


+1. Bu açı ekseni temsillerini quatlara dönüştürüp sonra SLERP kullanarak (w1, alfa1) ve (w2, alfa2) arasında enterpolasyon yapılabilir. Tabii ki, böyle bir şey bir Bezier / de Casteljau şeması / spline şeması aracılığıyla yapılabilir ve anahtar quaternionların bir "çokgen / seti" bu şekilde kullanılabilir ve karmaşık bir rotasyon ortaya çıkabilir. Bu belki de kuaterniyonların diğer temsillerden daha doğal olarak yaptığı tek şeydir çünkü SLERP ve multiSLERP veya bunların varyasyonları (NLERP, SQUAD), jeodezik / en kısa rotasyon yolunda yer alan ara rotasyon ekseni / açı çiftleri ile ortaya çıkar. Kudos.
teodron
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.