Курсовая работа: Отрисовка сцены "Отражающиеся дорожки" алгоритмом обратной трассировки лучей
}
}
Приложение 3
Листинг Ray.java
package objects;
import java.awt. Color;
import java.util. Vector;
/**
*
* @author Алексей
*/
// Луч
public class Ray {
float max_distance = Float.MAX_VALUE; // максимальнаязначениедля currentDistance луча
WorkVector initRay; // началолуча
WorkVector finalRay; // направлениелуча
float currentDistance; // Текущее расстояние до обьекта
Sphere object; // Обьект, с которым произошло столкновение луча
public Ray (WorkVector eye, WorkVector dir) {
initRay = new WorkVector(eye);
finalRay = WorkVector.normalize(dir);
}
public boolean trace (Vector objects) {
currentDistance = max_distance;
object = null;
for (int i = 0; i < objects.size(); i++) {
Sphere object = (Sphere) objects.elementAt(i);
object.intersection(this); // проверка пересечения с объектом
}