在我的程序中,我将特定坐标放入列表中。但是,该算法有时会将相同的坐标两次放入列表中。为了避免这种情况,我通过将 EPSILON 值与列表中所有位置的 x 和 y 值的绝对差进行比较来执行标准方法:
bool doubleEqual(double x1, double y1, double x2, double y2){
if( (fabs(x1-x2) < EPSILON) && (fabs(y1-y2) < EPSILON) ){
return TRUE; // particle is already in list
}
return FALSE; // particle is not in the list
}
我有几个问题:
1)这种比较两个粒子位置的实现是否正确?
2) 我可以选择多小的 EPSILON?(粒子可以彼此非常接近)
3)有没有更快/更健壮的实现来比较粒子的位置?