私のプログラムでは、特定の座標をリストに入れました。ただし、アルゴリズムによって、同じ座標がリストに 2 回追加されることがあります。それを避けるために、リスト内のすべての位置からの x 値と y 値の両方の絶対差と EPSILON 値を比較することで、標準的なアプローチを行います。
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 つの粒子の位置を比較するこの実装は正しいですか?
2) EPSILON はどのくらい小さいサイズを選択できますか? (粒子は互いに非常に接近することができます)
3) 粒子の位置を比較するためのより高速な、またはより堅牢な実装はありますか?