-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
1 | |
Как организовать движение объекта к цели23.09.2014, 18:33. Показов 6224. Ответов 129
Метки нет (Все метки)
Всем, Здравствуйте! Интересует такой вопрос. Как организовать движение объекта (обьект , двигается вперед, но может поворачивать на определенный угол и снова едет вперед) к цели С, из A в B цель передвинулась, я получил координаты из них стороны и углы треугольника (через аркосинус), полученного вершинами, начала , куда передвинулся обьект и целью, Дальше нужно организовать перемещение , вернее , надо как то проверять условия, чтобы обьект , через определённые промежутки времени, опять проверял направление и снова двигался к цели. Уже 3 дня бьюсь над этой задачей. Не знаю как организовать проверку и правильный поворот. То есть цель , сама должна поворачиваться, потом двигаться , проверять и так далее) Помогите пожалуйста!
0
|
23.09.2014, 18:33 | |
Ответы с готовыми решениями:
129
ИИ для игры - движение объекта к цели Как организовать движение объекта по координатам? Организовать движение объекта Организовать движение объекта по форме при нажатии на клавишу |
Модератор
|
|
26.09.2014, 10:03 | 121 |
smsgeorge, сникерсни!
Делай как хочешь, можешь воспользоваться магией. Тут тебе кроме скалярного произведения и и нормировки (отсюда и длины) вектора, знать ничего не нужно. Для определения справа/слева - скалярное произведение вектора направления на цель и перпендикуляра вектора направления игрока; для определения спереди или сзади - скалярное произведение вектора направления на цель и вектора направления игрока; Чтобы найти перпендикуляр - опять скалярное произведение.
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
26.09.2014, 10:12 [ТС] | 122 |
Ну блин , он все равно крутится(
Добавлено через 2 минуты The trick, для определения спереди или сзади - скалярное произведение вектора направления на цель и вектора направления игрока - это я сделал Для определения справа/слева - скалярное произведение вектора направления на цель и перпендикуляра вектора направления игрока - это как? поэтому и крутится Добавлено через 2 минуты The trick, Для определения справа/слева - скалярное произведение вектора направления на цель и перпендикуляра вектора направления Это и есть тот вектор (0 -1)?))
0
|
Модератор
|
||||||
26.09.2014, 10:13 | 123 | |||||
Я тебе дал описание и код - почему там не крутится? Почему там объект преследует цель? А теперь смотри свой код, что-то там не так.
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
26.09.2014, 10:30 [ТС] | 124 |
выходит четыре условия:
1)Для определения справа/слева - скалярное произведение вектора направления на цель и перпендикуляра вектора направления игрока; 2)Для определения спереди или сзади - скалярное произведение вектора направления на цель и вектора направления игрока; Чтобы найти перпендикуляр - опять скалярное произведение. if 1<0 & 2<0 if 1<0 & 2>0 if 1>0 & 2>0 if 1>0 & 2<0 Добавлено через 4 минуты The trick, я взял вектор от 1 точки до цели и от первой точки до вектора (0 -1) , не так вообще сделал? Добавлено через 3 минуты The trick, вот нашел то? ваш вектор имеет координаты m,n искомый вектор имеет координаты n1,m1 Условие перпендикулярности n1/m1=-m/n
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
26.09.2014, 10:40 [ТС] | 125 |
The trick, Давай чтобы не запутаться , по шагам. Это я верно сделал? Чтобы я мог идти дальше и не зацикливаться?
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
||||||
26.09.2014, 11:43 [ТС] | 127 | |||||
The trick, у меня сейчас температура 38, может и туплю из-за этого.
Вот так то есть надо.? (AX - CX) * (AY - BY) - (AX - BX) * (AY - CY) И вправду затупил) С этим разобрались. Теперь к перпендикуляру. Добавлено через 9 минут The trick,〈a,b〉 = 0, |a|=|b| модуль это длинна вектора, значит сравнить их длинны? Добавлено через 6 минут The trick, в том хоть направлении рою? каноническое уравнение прямой: (x-x1)/(x1-x2)=(y-y1)/(y1-y2) Его приводим к виду: a*x+b*y+c=0 В нем, вектор с координатами (a,b) перпендикулярен прямой. Отсюда, уравнение прямой, перпендикулярной данной, которая проходит через точку М(x3,y3) имеет вид: (x-x3)/a=(y-y3)/b. Добавлено через 4 минуты Или это и есть над чем я сейчас парюсь?
The trick, крутится) (вертится шар голубой, крутится вертится над головой.....)
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
26.09.2014, 13:11 [ТС] | 128 |
чувсвую пипец себя плохо(((
Добавлено через 6 минут The trick, , ну первое я же правильно сделал? Ты ничего не говоришь я и не знаю правильно делаю или нет.. Как перпендикуляр найти , а потом как понял нужно взять скалярное произведение перпендикуляра к вектору (x0 y0) -(xc,yc). Не молчи, добить уже эту задачу и отлеживаться . Добавлено через 17 минут The trick, да чего больше ничего не говоришь ? сижу просто экран обновляю уже пол часа( Добавлено через 10 минут кто понял, подскажите.... Добавлено через 41 минуту включил режим невидимости и молчит(
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
||||||
26.09.2014, 14:03 [ТС] | 129 | |||||
The trick, с этой частью разобрался, а про перпендикуляр ничего не понял. если делать как у тебя , он крутится постоянно.
0
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
||||||||||||
26.09.2014, 21:33 [ТС] | 130 | |||||||||||
mkonec:[/VB]
Добавлено через 10 минут Все сделал, но он почему то как будто точно не поворачивается(
Он странно идет, хотя точку я ему задал выше левее. http://youtu.be/gKciUERMOnU. вот лог 15:04:11 uslovie levo/pravo -56 15:04:11 uslovie vpered 376 15:04:12 uslovie levo/pravo 45 15:04:12 uslovie vpered 275 15:04:12 uslovie levo/pravo -54 15:04:13 uslovie vpered 306 15:04:13 uslovie levo/pravo 9 15:04:13 uslovie vpered 369 15:04:14 uslovie levo/pravo -52 15:04:14 uslovie vpered 300 15:04:14 uslovie levo/pravo 10 15:04:15 uslovie vpered 362 15:04:15 uslovie levo/pravo -7 15:04:15 uslovie vpered 251 15:04:16 uslovie levo/pravo 12 15:04:16 uslovie vpered 348 15:04:16 uslovie levo/pravo -5 15:04:16 uslovie vpered 241 15:04:17 uslovie levo/pravo 54 15:04:17 uslovie vpered 306 15:04:17 uslovie levo/pravo -4 15:04:18 uslovie vpered 236 15:04:18 uslovie levo/pravo 45 15:04:18 uslovie vpered 250 15:04:19 uslovie levo/pravo -4 15:04:19 uslovie vpered 236 15:04:19 uslovie levo/pravo 13 15:04:20 uslovie vpered 341 15:04:20 uslovie levo/pravo -84 15:04:20 uslovie vpered 316 15:04:21 uslovie levo/pravo 21 15:04:21 uslovie vpered 333 15:04:21 uslovie levo/pravo -34 15:04:22 uslovie vpered 262 15:04:22 uslovie levo/pravo 22 15:04:22 uslovie vpered 326 15:04:23 uslovie levo/pravo -24 15:04:23 uslovie vpered 309 15:04:23 uslovie levo/pravo 23 15:04:23 uslovie vpered 319 15:04:24 uslovie levo/pravo -32 15:04:24 uslovie vpered 256 15:04:25 uslovie levo/pravo 24 15:04:25 uslovie vpered 312 15:04:25 uslovie levo/pravo 15 15:04:25 uslovie vpered 260 15:04:26 uslovie levo/pravo -38 15:04:26 uslovie vpered 200 Добавлено через 1 минуту то положительное векторное произведение, то отрицательное. Добавлено через 15 минут Для определения справа/слева - скалярное произведение вектора направления на цель и перпендикуляра вектора направления игрока; Блин что за? Добавлено через 1 минуту И никто больше не заходит, как будто не знают( Добавлено через 4 минуты The trick, напиши пожалуйста по формулы и как использовать нормировку, вообщем с условием двигаться вперед я разобрался, а вот с остальным не очень( Поэтапно напиши или нарисуй пожалуйста. Вообщем интересует как получить условие влево/вправо. Добавлено через 32 минуты The trick, как долго я тебя ждал, ура! Я так и сижу за компом, сопли текут, знобило , было 37.3 , теперь не знобит, но чувствую, что горячий. Добавлено через 33 минуты Кароче я решил делать через угол, так как The trick, все равно не помогает, приходится блин вымаливать из него инфу, смотри, когда нибудь тебе тоже нужна будет помощь, что нормально объяснили и ты также будешь как я ! Модератор такого великого сайта, а обычный люд за говно считает. Ну что поделать, если я ненавижу геометрию и в школе не любил, вот алгебру любил, а синусы косинусы не переносил на дух, 3 дня я вымаливаю из The trick, то , что можно подробно расписать за 10 минут. ТЫ в общем написал, но так думаешь легко. Приходится сидеть и мониторить сайт и так 3 дня. А еще и с температурой по 38. Совести у тебя нет, а мне уже противно тебя о чем то спрашивать становится. Может ты и модератор, но ты этого не заслуживаешь!
Это чисто мое мнение, я могу и ошибаться и дело не в том помоги ли нет, он помогал много, но его отношение к людям, просто омерзительно! Вообщем буду делать через угол. Сейчас другой вопрос , как сделать максимальную скорость , чтобы из моей программы записывались углы в тхт файл, а уже от туда VB6 брал инфу , вычислял и заносил в тхт. (раньше программа VB6 все делала быстро, как бы открывался ехе , вычислял и сам закрывался) ? Добавлено через 2 минуты А сейчас подумал, может и не стоит его закрывать, это же лишние секунды. сделать либо через таймер, либо есть ли функция , которая узнает поменялись ли данные ну и начинает действовать. Добавлено через 4 часа 53 минуты Сделал через углы Апострофф, тебе вообще огромная благодарность, через углы работает даже лучше , чем у The trick . Спасибо всем. Alex77755, и другим The trick, что хоть, когда то отписывался, а вообще я лучше промолчу. 3 дня....... Ладно, ребята , спасибо!
0
|
26.09.2014, 21:33 | |
26.09.2014, 21:33 | |
Помогаю со студенческими работами здесь
130
Как организовать движение по X и Y в центр? Как организовать движение новых PicrtureBox? Как организовать движение товаров склада? Возможно ли сделать движение зрачков, реагирующее на движение какого-либо объекта Сформировать меню: 1) свободное движение объекта 2)движение с клавиатуры Как лучше всего организовать движение textView вниз? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |