dir.normalize ();
const Vector3D& getOrigin () const return org;
const Vector3D& getDir () const return dir;

Простейшие геометрические алгоритмы и структуры

Vector3D point ( float t ) const // point on ray {
return org + t * dir;
}
float intersect ( const Plane& plane ) const; void transform ( const Transform3D& transf );
} ;

Одним из достаточно важных тестов с использованием луча является определение его пересечения с основными ограничивающими телами. Для начала мы рассмотрим определение пересечения луча со сферой (с, г) (рис. 3.14). Соответствующий код приводится ниже.

В случае, если пересечение луча со сферой действительно имеет место, то для нахождения расстояния вдоль луча до точки пересечения можно воспользоваться следующей формулой.

Рис. 3.14

bool BoundingSphere "opengl6_51.html">⇐ Предыдущая| |Следующая ⇒