-1

Java/Processing で使用されている比較方法に問題があります。

それは一般的な契約に違反していると言っていますが、これはアイテム間の関係に一貫して機能しないことを意味すると理解しています...

しかし、理由がわかりません。ycor と xcor の比率 (sin と cos など) に基づいて角度シータを返すだけなので、0 から 360 度までの位置に基づいて一貫して並べ替えるべきではありませんか?

public int compareTo(Orb other) {
double X = Math.atan2(ycor,xcor);
if (Math.atan2(other.ycor,other.xcor) > X) {
  return -1;
}
if (Math.atan2(other.ycor,other.xcor) == X) {
  return 0;
}
return 1;
}

どんな助けでも大歓迎です、ありがとう!

特定のコンテキストは、Collection.Sort() の実行時にエラーが発生することです。

4

1 に答える 1