![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Гость_Гость |
|
|||
Unregistered |
Значит такой вопрос - есть точка в 3Д , вертикальный еденичный вектор , и треугольник , на который приходится пересечение при дальнейшем движении по вертикали(нормаль треугольника тоже есть , если нужно)...
как узнать РАССТОЯНИЕ до этой точки? Все найденные мной доки по пересечению подразумевают что расстояние уже известно , наверное это считают элементарным и недостойным упоминания) ломаю голову целый день , но так ничего и не надумал ![]() |
|||
|
||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
Зарегистрировался)
t = -(D + N dot StartPoint)/(N dot RayDir) - такая вот формула,t-расстояние... вроде-бы именно то что мне нужно,но... начинаю копаться дальше и нахожу, что чтобы узнать D , мне нужно знать координаты точки пересечения.Вот такой замкнутый круг , по которому я бегаю весь день Люди!! памагите кто чем может ![]() --------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Ну если вектор вертикальный то возьми и вычти из координаты Y точки, текущее расположение вектора по оси Y.
Добавлено @ 00:02
Точка пересечения будет однозначно в обьекте где у тебя происходит столкновение. Т.е. для эмуляции пересечения нужно две точки: точка пересечения и точка начала движущегося вектора. Или у тебя оба обьекта динамичны? --------------------
|
||||
|
|||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
недопонял... а что мне это даст? Нет , динамична только точка , но это вродебы не влияет... для простоты будем считать , что точка Х (Хы) движется по вертикали вниз , под ней расположен неподвижный треугольник(треугольник лежит не в горизонтальной плоскости). когда расстояние между точкой Хы и точкой пересечения становится меньше некоторого значения , ее движение должно прекратиться... для этого мне нужно найти координаты точки пересечения , или хотя-бы ее Y Это сообщение отредактировал(а) Batou - 8.4.2005, 00:17 --------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
расстояние по оси Y до обьекта пересечения. --------------------
|
||||
|
|||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
Похоже я всетаки чего-то не понимаю... ведь если вычесть из координат точки вектор , точка просто сдвинется вниз... или нет?
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
У тебя есть две точки. Тебе надо вычислить расстояние между ними, так? Добавлено @ 00:37
Я сказал глупость. Пардон ![]() Имел ввиду расположение второе точки. Добавлено @ 00:39
Координата точки пересечения - в координатах треугольника. Т.е. ты двигаешься по оси Y вниз, и когда ты сталкиваешься с точкой A, у тебя Y-координата будет равна Y-координате точки A и можно проследить столкновение. --------------------
|
||||||||
|
|||||||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
У меня бедного нет второй точки , есть объект и треугольник , я немогу проверить столкновение с точкой А... есть вариант двигать точку Хы и проверять , перешла она на другую сторону треугольника или нет , но тут может уйти много времени и точность зависит от того , насколько сдвигать точку... должно быть что-то попроще
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Обьект - это точка.
Ты вычитаешь из координат точки Хы координаты места столкновения, а-ка координаты-Y треугольника и получаешь расстояние между начальной позицией Хы и треугольником. --------------------
|
|||
|
||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
![]() ведь треугольник != точка столкновения --------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Значит выдели точку столкновения, найди её на плоскости треугольника. --------------------
|
||||
|
|||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
chipset,ты садист
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
![]() Вопроса я так и не догнал.. Давай по порядку. У тебя есть: 1) Точка которая будет сталкиваться 2) Вертикальный вектор определяющий направление и скорость движения точки 3) Треугольник с которым точка будет сталкиваться Тебе нужно: ? Узнать точку столкновения с треугольником ? --------------------
|
||||
|
|||||
Batou |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 7.4.2005 Репутация: нет Всего: 5 |
именно так
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся. |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
такое страшное обсуждение... и это только условие
![]() на самом деле все просто: 1. выписываем уравнение плоскости (в которой лежит треугольник) 2. подставляем туда горизонтальные координаты (как я понял - x,z) 3. решаем уравнение относительно y с пунктами (2), (3), я надеюсь, проблем не возникнет составление уравнения плоскости: пусть треугольник ABC, точка - D для того, чтобы все это лежало в одной плоскости, достаточно (и необходимо) det(AB,AD,AC)=0 (определитель) среди этого будут всего три неизвестных - Dx,Dy,Dz это - уравнение плоскости вспоминаем, что Dx и Dz у нас, на самом деле известны, подставляем, получаем Dy... Это сообщение отредактировал(а) maxim1000 - 8.4.2005, 10:35 -------------------- qqq |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |