|
Xors3D Графический движок с поддержкой DirectX9 |
18.11.2011, 21:01
|
#16
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Ха, доставило. Тема:
Оптимальный способ проверить находится ли объект между точками знаете?
Сказал же, сходи погугли расстояние от точки до прямой. прямая задается простейшим уравнением. Объект представим точкой и диаметром - из этого можно посчитать расстояние от центра до линии, образованной этими вашими двумя точками. А там уже условием отсекать лишнее г-но.
Учите матан. Движок собрались писать физический. *facepalm*
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.11.2011, 21:09
|
#17
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Не ну где тогда реализованая функция RayCast в физике. Я не дурак. И в курсе что на буллете основано. Я тоже могу запиилть двиг и присобачить к нему буллет (образно), но это не значит, что я вынесу все функции буллета в свою ддл. Так и у тебя. Оно там есть, но не реализовано в твоей длл!
|
(Offline)
|
|
18.11.2011, 21:11
|
#18
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Как вариант пилить самому физ движок под ксорс
|
Имелл ввиду врапить готовый физ двиг. Для непонятливых
|
(Offline)
|
|
18.11.2011, 22:07
|
#19
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
docs/html/group__px__raycast.html
BBDECL int BBCALL xPhysicsCountHits ()
Returns the number of hits of the last raycast.
BBDECL float BBCALL xPhysicsGetHitDistance (int index=0)
Returns the distance to the hit point from the ray's start.
BBDECL Entity *BBCALL xPhysicsGetHitEntity (int index=0)
Returns a handle of an entity which was hit by the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalX (int index=0)
Returns the X component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalY (int index=0)
Returns the Y component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalZ (int index=0)
Returns the Z component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointX (int index=0)
Returns global X coordinate of the hit point of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointY (int index=0)
Returns global Y coordinate of the hit point of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointZ (int index=0)
Returns global Z coordinate of the hit point of the last raycast.
BBDECL void BBCALL xPhysicsRayCast (float fromX, float fromY, float fromZ, float toX, float toY, float toZ, int rcType=0, int rayGroup=0)
Cast a ray trough the scene and gathers the detailed information on what was hit.
__________________
|
(Offline)
|
|
18.11.2011, 23:00
|
#20
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Беседа тут какая-то... фантастическая.
Кстати, правильнее будет не "вопрос в оглавлении", а "вопрос в заголовке".
Ладно я пошел, пока не заразился.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.11.2011, 23:58
|
#21
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Сообщение от .Squid
docs/html/group__px__raycast.html
BBDECL int BBCALL xPhysicsCountHits ()
Returns the number of hits of the last raycast.
BBDECL float BBCALL xPhysicsGetHitDistance (int index=0)
Returns the distance to the hit point from the ray's start.
BBDECL Entity *BBCALL xPhysicsGetHitEntity (int index=0)
Returns a handle of an entity which was hit by the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalX (int index=0)
Returns the X component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalY (int index=0)
Returns the Y component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitNormalZ (int index=0)
Returns the Z component of the hit normal of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointX (int index=0)
Returns global X coordinate of the hit point of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointY (int index=0)
Returns global Y coordinate of the hit point of the last raycast.
BBDECL float BBCALL xPhysicsGetHitPointZ (int index=0)
Returns global Z coordinate of the hit point of the last raycast.
BBDECL void BBCALL xPhysicsRayCast (float fromX, float fromY, float fromZ, float toX, float toY, float toZ, int rcType=0, int rayGroup=0)
Cast a ray trough the scene and gathers the detailed information on what was hit.
|
ой вот я облажался!!! я же реализовывал это в своем враппере
|
(Offline)
|
|
19.11.2011, 00:09
|
#22
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
FireOwl,Да какая разница заголовок оглавление.
Reizel, вот ненавижу тут вопросы задавать, обязательно учить будут, но помоч может только умный. Пост первый надо внимательнее прочитать. Я не стал вписывать в ЗАГОЛОВОК LinePick термин. И хотел узнать в конечном счете ему альтернативу. Формулу пор точку ч прямой, я и так использую постоянно. А вот pozitiffcat помог, вспомнил про рейкаст. Я помню с физикса что была какая то система. Но визуально найти не смог. Вот теперь буду рейкасты мучить.
|
(Offline)
|
|
19.11.2011, 00:23
|
#23
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Совсем никакой. Просто пришлось остановить взгляд на фразе и подумать, что она означает. Это полезно.
А оглавление - список заголовков.
|
(Offline)
|
|
19.11.2011, 03:35
|
#24
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
FireOwl, оглавление может содержать и один заголовок. Тем самым он приравнивается к нему.
|
(Offline)
|
|
19.11.2011, 05:20
|
#25
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Я бы с этим поспорил, но не вижу смысла.
|
(Offline)
|
|
19.11.2011, 12:43
|
#26
|
ПроЭктировщик
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений (для 33 пользователей)
|
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?
Доброго времени суток, уважаемый ТС!
Попробуйте старый проверенный способ (действует лишь при наличии трех точек): коль даны точки А и В, а объект находится в точке С, логично соединить точки тремя отрезками и получить треугольник. А потом уже вступает в дело "точность" - если вам необходимо, чтобы объект находился точно на отрезке АВ - задайте некую delta = 0, коль "точность" нужна поменьше - задайте delta = AABB.diag (какое-нибудь расстояние в пределах ААВВ объекта, например - длинна отрезка от левого нижнего спереди до правого верхнего угла сзади ААВВ). И вот когда у вас будет три отрезка - АВ, АС, ВС и delta - можете сделать следующую проверку:
if (AC + BC <= AC + delta)
// объект между точками
Здесь, АС, ВС и АС - числа, представляющие длинну соответствующего отрезка. Насколько мне известно, работать будет довольно шустро.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:10.
|