Базовые трехмерные объекты
Сфера Сфера является одной из наиболее просто аналитически задаваемых объектов. В программе для ее определения хранятся координаты ее центра и длина радиуса. Задача поиска пересечения луча со сферой достаточно проста и позволяет определить факт отсутствия пересечения на ранних этапах вычисления, что приводит к уменьшению времени выполнения программы и позволяет применять сферу в качестве объемной оболочки объекта, вычисление пересечения луча с которым требует больших вычислительных затрат. На рис. 2.10 изображена сфера и два пересекающих ее луча, начало одного из которых лежит внутри сферы, а другого – снаружи. Задачу можно рассматривать как плоскую – нахождение пересечения луча с окружностью, в силу того, что через прямую, вдоль которой распространяется луч, и центр окружности, всегда можно провести плоскость, а линия пересечения сферы с плоскостью, проходящей через ее центр, является окружностью с радиусом, равным радиусу самой сферы. Нахождение точки пересечения луча со сферой
Рис. 2.10
Рассмотрим первый случай, когда начало луча лежит вне сферы – в точке Иначе находим расстояние от центра сферы до луча – длину отрезка Из треугольника Нормаль к поверхности в любой точке сферы вычисляется тривиальным образом как вектор, соединяющий центр сферы с точкой на поверхности. Треугольник Треугольник является примитивом, посредством которого могут быть составлены практически любые многогранные тела. Он задается точкой
Треугольник Рис.2.11 Пересечение луча с плоскостью Рис. 2.12
Поиск пересечения луча с треугольником состоит из двух этапов: поиск пересечения луча с плоскостью треугольника и определение нахождения точки внутри него. Первый этап, изображенный на рис. 2.12, достаточно прост; производится проверка, пересекает ли луч плоскость, путем сравнения с нулем скалярного произведения Таким образом, расстояние от источника луча до точки пересечения равно:
Второй этап, заключающийся в определении принадлежности точки треугольнику, существенно сложнее и потребует дополнительных рассуждений. Локальная система координат Рис. 2.12 Введем локальную систему координат
Для этого введем дополнительные переменные:
На основании формул (2.13) и (2.14) введем значение координат в точке плоскости треугольника следующим образом:
где
где В силу того, что радиус-вектор точки внутри треугольника может быть представлен в виде суммы радиус-вектора точки
Окончательно:
Аналогичным образом можно получить:
Так как
мы получим требуемый результат – локальные координаты в пределах треугольника меняются не более чем на единицу. Окончательно имеем формулы для относительных локальных координат:
Подставляя найденные на первом этапе координаты точки на плоскости в эти выражения и проверив полученные результаты на нахождение в интервале Нормаль к треугольнику в любой его точке определяется как векторное произведение векторов, задающих его стороны. Текстура и фактура Общие сведения В данной программе предусмотрено наложение на трехмерные объекты текстур и имитация шероховатостей поверхностей. Для этого предусмотрена загрузка битовых карт формата *.bmp из внешних файлов. Основное отличие фактуры от текстуры – фактура вызывает изменение направления нормали для данной поверхности
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (215)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |