ana*_*kos 6 java math comparison quaternions comparable
四元数比较可能吗?我正在编写一个Java类的Quaternions,我想实现Comparable接口来使用该Collections.sort(List<Quaternion>)工具.我不是数学专家,我真的不明白我读到的关于四元数的事情.那么,任何人都可以告诉我,我可以覆盖compareToQuaternions 的方法以及如何?
我的班级宣誓:
public class Quaternion implements Serializable, Comparable<Quaternion> {
private double s; // scalar part
private double i, j, k; // vectorel part
public Quaternion() {
super();
}
public Quaternion(double s, double i, double j, double k) {
super();
this.s = s;
this.i = i;
this.j = j;
this.k = k;
}
Run Code Online (Sandbox Code Playgroud)
没有理由不能比较两个四元数。假设您要比较大小,请计算并比较四元数范数。您的四元数类应该有一个范数(大小)方法,允许 toCompare 如下所示:
int compareTo(Quaternion o){
return (int)(this.norm() - o.norm());
}
Run Code Online (Sandbox Code Playgroud)
更好的版本是:
int compareTo(Quaternion o){
// return (int)(this.norm() - o.norm());
double tNorm = this.norm;
double oNorm = o.norm;
int retVal = 0;
if (tNorm < oNorm){
retVal = -1;
} else if (tNorm > oNorm){
retVal = 1;
}
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |