Можно ли заставить алгоритм моего художника достичь большей точности? - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно отсортировать треугольники по расстоянию между ними и камерой, однако моя реализация работает только в 50% случаев. Я вычисляю среднее значение точек каждого треугольника, затем вычисляю расстояние между камерой и этими точками. Я сравниваю расстояние между двумя треугольниками, и треугольник, у которого меньше, сортируется назад. Есть ли способ сделать его эффективным хотя бы на 80%, мне это не нужно для чего-то необычного.

camera3D - это вектор, который удерживает положение камеры. a и b оба являются треугольниками в массиве trisToDisplay. avgX, avgY и avgZ - все вычисляют средние значения x, y и z треугольника.

trisToDisplay = trisToDisplay.sort(function(a, b) {
    return  distance3D(avgX(b), avgY(b), avgZ(b), camera3D.x, camera3D.y, camera3D.z) - distance3D(avgX(a), avgY(a), avgZ(a), camera3D.x, camera3D.y, camera3D.z); 
});
...