Сейчас 10:01:25 Пятница, 29 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Тригонометрия ^_^
HexingДата: Среда, 16 Ноября 2011, 09:50:00 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Помогите вычислить значения вектора по осям X и Y если направление вектора можно получить засчёт неограниченных единицой значениями x и y как скоростей(это не важно) ну или как это обьяснить я даже не знаю... короче я нарисовал:

Как видно на рисунке, машина идет по инерции, а траектория движения после столкновения зависит не только от поворота машины, но и от траектории движения машины перед столкновением(тоесть вектора движения), хотя я вообще не уверен что конечная траектория зависит от поворота машины...
вообщем я игрался с синусами и косинусами и максимум что у меня работало хоть немного это:
Code

speedX = speedX*Cos(r);
speedY = speedY*Sin(r);

где r - угол поворота машины в радианах
Однако такой подход работает плохо изза неучитывании траектории столкновения(можно в послдний момент повернуться и всё не по правилам)
У меня есть текущее положение машины - x , y
Еще есть значения предыдущих координат - prevX , prevY
А для определения столкновения используется квадратный корень из( (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) )
где x1 - x, y1 - y, x2 - mustX, y2 - mustY
в свою очередь mustX = x+speedX, mustY = y+speedY
таким образом надо вычислить угол между (x,y) и (prevX,prevY) как это сделать???
а потом уже для этого угла применять Cos() для вычесления множителя по оси x и Sin() по оси y соответственно...
+ тому кто поможет idiot


 

Ty3uKДата: Среда, 16 Ноября 2011, 09:54:59 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Мб чекать угол через атан2 и уже из него менять положение? Больше пока в голову ничего не лезет

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Среда, 16 Ноября 2011, 10:00:23 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
ага) пока писал пост сам же и додумался... замутил через атан2 угол между предыдущими коордами и текущими и всё робит

 

Ty3uKДата: Среда, 16 Ноября 2011, 10:14:58 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вот вот :) молодец, Холмс

Добавлено (16 Ноябрь 2011, 10:14:58)
---------------------------------------------
А где же обещанное материальное "спасибо"? ^_^ Шутка юмора :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Среда, 16 Ноября 2011, 12:38:07 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
аааа оно не работает... atan2 - всегда положительный млеа!!! ему нет разницы от первой точки ко второй или наоборот... а мне надо чтобы было отриц. значение когда точки наоборот!!! помогите плиз

 

Ty3uKДата: Среда, 16 Ноября 2011, 12:48:02 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, отнюдь, разница есть.
в радианах
Code
local real angle = Atan2(GetSpellTargetX() - GetWidgetX(u), GetSpellTargetY() - GetWidgetY(u))

в градусах
Code
local real angle = 57.295 * Atan2(GetSpellTargetX() - GetWidgetX(u), GetSpellTargetY() - GetWidgetY(u))

есть ли разница между 50 - (-25) = 75 и -25 - 50 = -75? Офк есть


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Среда, 16 Ноября 2011, 12:48:51
 

HexingДата: Среда, 16 Ноября 2011, 12:54:54 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
нет
atan2 возводит в квадрат и все сходин на положительное число в результате

Добавлено (16 Ноябрь 2011, 12:54:54)
---------------------------------------------
или не возводит... но результат всегда положительный, как этого ибежать, есть ли альтернатива атану2?


 

Ty3uKДата: Среда, 16 Ноября 2011, 12:55:49 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
ну так, чисто для интереса
а вот и разверточка, если читать не хочется)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Среда, 16 Ноября 2011, 12:57:59
 

HexingДата: Среда, 16 Ноября 2011, 12:56:51 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
правда вру, протестил Atan(-10, 10) и (10, 10) все верно робит.. значит дело в коде, спс

 

Ty3uKДата: Среда, 16 Ноября 2011, 12:58:19 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, нз, кинь код, мб чего обмозгуем

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Среда, 16 Ноября 2011, 13:15:39 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Вот обычный рикошет, без поворотов во время движения.

 

HexingДата: Среда, 16 Ноября 2011, 13:55:21 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
спс, щас вскрою :P

Добавлено (16 Ноябрь 2011, 13:55:21)
---------------------------------------------
ничего не работает ;( я уже день парюсь ;( а ничего не работает ;(((( как всё грустно:(((((((((((((((((((((((((((((
SirNikolas, дай скайп я тебе мапу скину а ты все за меня сделаешь ок да? D:


 

FkoFFДата: Четверг, 17 Ноября 2011, 03:26:08 | Сообщение # 13
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Тригоноправила ^_^

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz