|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Геометрические объекты. |
|
Геометрические объекты.
|
Ночной странник Сообщения: 4050 |
Профиль | Сайт | Отправить PM | Цитировать вопрос в следующем:
как наыти точку пересечения геометрического объекта(примитива) и луча? примитивы: плоскость сфера цилинтр конус паралелепипед полигон и как это будет выглядеть в коде. или хотябы с математической форме? |
|
------- Отправлено: 21:47, 04-01-2004 |
Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать Vlad Drakula
Это задача из курса аналитической геометрии. Луч (т.е. прямая) описывается парой уравнений плоскостей: ax+by+cz=d, Ax+By+Cz=D. Это два уравнения из трех. Твой примитив д.б. описан в виде уравнения: F(x,y,z)=E. Вот тебе третье уравнение. Решаешь их совместно, получаешь общие точки. |
------- Отправлено: 01:35, 05-01-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать это понятно, это самое простое.
Если кому интересно то вот реализация: int Plane::Intersect( Ray& ray, double& t) { double vd = n&ray.Dir; if(vd > -EPS && vd < EPS) return 0; t = - (( n&ray.Org ) + D )/vd; return t > GeomThreshold; } Соответственно для сферы: int Sphere::Intersect( Ray& ray, double& t) { Vector l = Loc - ray.Org; double L2OC = l&l; double tca = l&ray.Dir; double t2hc = Radius - L2OC + tca*tca; double t2; if( t2hc <= 0.0 ) return 0; t2hc = sqrt( t2hc ); if ( tca < t2hc) { t = tca + t2hc; t2 = tca - t2hc; } else { t = tca - t2hc; t2 = tca + t2hc; } if( fabs (t) < GeomThreshold ) t = t2; return t > GeomThreshold; } а для остальных объектов??? |
------- Отправлено: 19:41, 06-01-2004 | #3 |
Guest |
2 Vlad Drakula
вот уж не знаю самому проще написать или попробовать догадаться кто такие Ray и ему подобные ... ) |
Отправлено: 20:00, 09-01-2004 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
отсутствуют объекты контейнера ForeignSecurityPrincipals | Fighter | Microsoft Windows NT/2000/2003 | 5 | 24-12-2014 15:59 | |
Ярко засвеченные объекты в 3D | dm451 | Видеокарты | 3 | 03-01-2010 18:53 | |
[решено] Настройка аудита на объекты | dimds | Microsoft Windows NT/2000/2003 | 5 | 06-07-2006 12:40 | |
DreamWeaver - объекты поверх изображений | SuperMaximus | Вебмастеру | 7 | 24-08-2005 17:21 | |
JS: Объекты + слоя ? | Proft | Вебмастеру | 1 | 08-08-2003 18:27 |
|