Я бы предложил использовать 3d-движок, который распознает столкновение для вас, как jMonkey. jMonkey может использовать LWJGL. Здесь есть потрясающий учебник: http://wiki.jmonkeyengine.org/doku.php/jme3:beginner:hello_collision
Если вы хотите катиться самостоятельно, как и я, я создаю хэш трехмерных точек в пространстве. Если другой объект имеет тот же самый хэш, он имеет почти столкновение.
import static java.lang.System.out;
public class App {
public static int hash(float x, float y, float z) {
double hash = (((x * 31) + (y * 37) + (z * 41)));//31,37 and 41 are prime numbers
return (int) (hash);//multiplying the hash by 1000 for example may increase the accuracy significantly. Depends on the size of your space
}
public static void main(String[] args) {
for (float count = 0; count < 2; count += 0.01) {
out.println(hash(0, 0, count));
}
}
}
Как видите, хеши на выходе показывают близкое столкновение, когда количество увеличивается на 0,01.
0
0
0
1
1
2
2
2
3
3
4
4
4
5
5
6
6
6
Вы можете изменить простые числа для большей точности.
Я пытаюсь восстановить его вопрос, отредактировав вопрос. Надеюсь, все в порядке. – rjdkolb
ok Спасибо за редактирование – TheThirtyFirst