Jos*_*osh 7 distance nearest-neighbor quaternions
给定四元数值,我想在一组四元数中找到它最近的邻居.要做到这一点,我显然需要一种方法来比较两个四元数之间的"距离".这种比较需要什么距离表示以及如何计算?
谢谢,
玩笑
JCo*_*per 10
这是一个老问题,但它似乎需要更多的答案.如果四元数是用于表示旋转的单位长度四元数,则欧几里德距离将给出一些有趣的结果,因为四元数提供旋转空间的2倍冗余表示; 即四元数及其否定代表相同的方向.在这种情况下,正确的距离度量是四元数之间的角度,约束在以下范围内[0,pi/2]:
theta = acos(q1.w*q2.w + q1.x*q2.x + q1.y*q2.y + q1.z*q2.z);
if (theta>pi/2) theta = pi - theta;
Run Code Online (Sandbox Code Playgroud)