Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расстояние до точки пересечения, элементарная задачка(?) 
:(
    Опции темы
Гость_Гость
Дата 7.4.2005, 23:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Значит такой вопрос - есть точка в 3Д , вертикальный еденичный вектор , и треугольник , на который приходится пересечение при дальнейшем движении по вертикали(нормаль треугольника тоже есть , если нужно)...
как узнать РАССТОЯНИЕ до этой точки? Все найденные мной доки по пересечению подразумевают что расстояние уже известно , наверное это считают элементарным и недостойным упоминания) ломаю голову целый день , но так ничего и не надумал smile
  Вверх
Batou
Дата 7.4.2005, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



Зарегистрировался)

t = -(D + N dot StartPoint)/(N dot RayDir)

- такая вот формула,t-расстояние... вроде-бы именно то что мне нужно,но... начинаю копаться дальше и нахожу, что чтобы узнать D , мне нужно знать координаты точки пересечения.Вот такой замкнутый круг , по которому я бегаю весь день
Люди!! памагите кто чем может smile
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Ну если вектор вертикальный то возьми и вычти из координаты Y точки, текущее расположение вектора по оси Y.

Добавлено @ 00:02
Цитата(Batou @ 7.4.2005, 13:59)
мне нужно знать координаты точки пересечения.

Точка пересечения будет однозначно в обьекте где у тебя происходит столкновение.
Т.е. для эмуляции пересечения нужно две точки: точка пересечения и точка начала движущегося вектора.
Или у тебя оба обьекта динамичны?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



Цитата
Ну если вектор вертикальный то возьми и вычти из координаты Y точки, текущее расположение вектора по оси Y.

недопонял... а что мне это даст?


Нет , динамична только точка , но это вродебы не влияет...
для простоты будем считать , что точка Х (Хы) движется по вертикали вниз , под ней расположен неподвижный треугольник(треугольник лежит не в горизонтальной плоскости). когда расстояние между точкой Хы и точкой пересечения становится меньше некоторого значения , ее движение должно прекратиться... для этого мне нужно найти координаты точки пересечения , или хотя-бы ее Y

Это сообщение отредактировал(а) Batou - 8.4.2005, 00:17
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Batou @ 7.4.2005, 14:04)
недопонял... а что мне это даст?

расстояние по оси Y до обьекта пересечения.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



Похоже я всетаки чего-то не понимаю... ведь если вычесть из координат точки вектор , точка просто сдвинется вниз... или нет?
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Batou @ 7.4.2005, 14:28)
Похоже я всетаки чего-то не понимаю... ведь если вычесть из координат точки вектор , точка просто сдвинется вниз... или нет?

У тебя есть две точки. Тебе надо вычислить расстояние между ними, так?

Добавлено @ 00:37
Цитата(chipset @ 7.4.2005, 14:01)
текущее расположение вектора по оси Y.

Я сказал глупость. Пардон smile
Имел ввиду расположение второе точки.
Добавлено @ 00:39
Цитата(Batou @ 7.4.2005, 14:04)
когда расстояние между точкой Хы и точкой пересечения становится меньше некоторого значения , ее движение должно прекратиться... для этого мне нужно найти координаты точки пересечения , или хотя-бы ее Y

Координата точки пересечения - в координатах треугольника.
Т.е. ты двигаешься по оси Y вниз, и когда ты сталкиваешься с точкой A, у тебя Y-координата будет равна Y-координате точки A и можно проследить столкновение.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



У меня бедного нет второй точки , есть объект и треугольник , я немогу проверить столкновение с точкой А... есть вариант двигать точку Хы и проверять , перешла она на другую сторону треугольника или нет , но тут может уйти много времени и точность зависит от того , насколько сдвигать точку... должно быть что-то попроще
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Обьект - это точка.
Ты вычитаешь из координат точки Хы координаты места столкновения, а-ка координаты-Y треугольника и получаешь расстояние между начальной позицией Хы и треугольником.



--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



smile если бы я знал координаты места столкновения , я бы так и сделал , но я незнаю , в этом вся проблема
ведь треугольник != точка столкновения
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Batou @ 7.4.2005, 15:04)
ведь треугольник != точка столкновения

Значит выдели точку столкновения, найди её на плоскости треугольника.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



chipset,ты садист
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Batou @ 7.4.2005, 23:03)
chipset,ты садист

smile
Вопроса я так и не догнал..
Давай по порядку. У тебя есть:
1) Точка которая будет сталкиваться
2) Вертикальный вектор определяющий направление и скорость движения точки
3) Треугольник с которым точка будет сталкиваться
Тебе нужно:
? Узнать точку столкновения с треугольником ?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Batou
Дата 8.4.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



именно так
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
maxim1000
Дата 8.4.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 2
Всего: 110



такое страшное обсуждение... и это только условие smile
на самом деле все просто:
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
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.1293 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.