Сетка Raytracer не центрируется правильноJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сетка Raytracer не центрируется правильно

Сообщение Anonymous »

У меня была эта ошибка уже некоторое время, и я обнаружил ее в том, как я пытаюсь повернуть, а затем центрировать сетку в моем трассировщике лучей. Я понял, что сетки необходимо сначала повернуть, а затем центрировать так, чтобы нижняя центральная точка сетки находилась в 0, 0, 0. Вот мой код:

Код: Выделить всё

    for(int i = 0; i < triangleList.size(); i++) {
for(int a = 0; a < 3; a++) {
double x = triangleList.get(i)[a][0];
double y = triangleList.get(i)[a][1];
double z = triangleList.get(i)[a][2];

double X = rx(x, z, Math.toRadians(xDir));
double Y = y;
double Z = rz(x, z, Math.toRadians(xDir));

x = X;
y = rx(Y, Z, Math.toRadians(yDir));
z = rz(Y, Z, Math.toRadians(yDir));

triangleList.get(i)[a][0] = x;
triangleList.get(i)[a][1] = y;
triangleList.get(i)[a][2] = z;
}
}

double leastX = Double.MAX_VALUE;
double mostX = Double.MIN_VALUE;
double leastZ = Double.MAX_VALUE;
double mostZ = Double.MIN_VALUE;

double leastY = Double.MAX_VALUE;

for(int i = 0; i < triangleList.size(); i++) {
for(int a = 0; a < 3; a++) {
leastX = Math.min(leastX, triangleList.get(i)[a][0]);
mostX = Math.max(mostX, triangleList.get(i)[a][0]);

leastY = Math.min(leastY, triangleList.get(i)[a][1]);

leastZ = Math.min(leastZ, triangleList.get(i)[a][2]);
mostZ = Math.max(mostZ, triangleList.get(i)[a][2]);
}

}

mostX = (leastX + mostX) / 2;
mostZ = (leastZ + mostZ) / 2;

for(int i = 0; i < triangleList.size(); i++) {
for(int a = 0; a < 3; a++) {
double x = triangleList.get(i)[a][0];
double y = triangleList.get(i)[a][1];
double z = triangleList.get(i)[a][2];

triangleList.get(i)[a][0] = x - mostX;
triangleList.get(i)[a][1] = y - leastY;
triangleList.get(i)[a][2] = z - mostZ;
}
}

double[][][] newMesh = triangleList.toArray(new double[0][3][3]);

Я попробовал сначала центрировать, а затем повернуть, но это не решило проблему.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C ++ Raytracer Многопользовательский
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Нарисуйте каждый визуализированный линию Scanline в Windowed Raytracer
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Нарисуйте каждый визуализированный линий Scanline в Windowed Raytracer?
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Нарисуйте каждый визуализированный линий Scanline в Windowed Raytracer? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • CSS-сетка/гибкая сетка сжимается в зависимости от содержимого, но растет равномерно
    Anonymous » » в форуме CSS
    0 Ответы
    74 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»