Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

определение вертикального вектора

Статус пользователя nsgenn
сообщение 30.12.2013, 13:15
Сообщение #1


Стаж: 13 лет

Сообщений: 885
Благодарностей: 561
Полезность: 667

Добрый.

Столкнулся с непредвиденной ситуацией, не получается определить вертикальный вектор точки зрения игрока. Горизонтальный - все в порядке.

Код:
new Float:fX = float(fNOrigin[0]) - fpOrigin[0] 
new Float:fZ = float(fNOrigin[1]) - fpOrigin[1]
new Float:fY = float(fNOrigin[2]) - fpOrigin[2]

fAngles[0]=floatatan(floatdiv(fY,floatsqroot(floatadd(floatadd(floatpower(floats
ub(float(fNOrigin[0]),fpOrigin[0]),2.0),floatpower(floatsub(float(fNOrigin[1]),f
p
Origin[1]),2.0)),floatpower(floatsub(float(fNOrigin[2]),fpOrigin[2]),2.0)))),deg
r
ees)


Эффект прямо противоположный - если объект находится выше, то вектор опускается вниз.
fNOrigin - место точки начала вектора
fpOrigin - объект на который смотрим.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя csnet
сообщение 30.12.2013, 13:20
Сообщение #2
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

мало кода, ты получаешь вектор конечной точки сначала а потом высчитываешь вертикаль?


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя nsgenn
сообщение 30.12.2013, 13:29
Сообщение #3


Стаж: 13 лет

Сообщений: 885
Благодарностей: 561
Полезность: 667

Цитата(csnet @ 30.12.2013, 15:20) *
мало кода, ты получаешь вектор конечной точки сначала а потом высчитываешь вертикаль?


нет, я получаю координаты головы, это fNOrigin, а вот fpOrigin это координаты точки, куда должен пасть взгляд.
fAngles[0] - вертикальный вектор
fAngles[1] - горизонтальный, но он высчитывается после вертикального и вполне точно.

Единственное, что за ночь удалось предположить, что может ошибка в том, что fNorigin я получаю через get_user_origin, а fpOrigin через pev, но это наврядли причина в этом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 30.12.2013, 13:32
Сообщение #4
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

нет, все верно, конечная точка через get_user_origin

а ты пробовал взять горизонтальную координату и просто отнять - 45 градусов.
получишь вертикал, или моя логика фуфло.. х3

Отредактировал: csnet, - 30.12.2013, 13:33


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя nsgenn
сообщение 30.12.2013, 13:45
Сообщение #5


Стаж: 13 лет

Сообщений: 885
Благодарностей: 561
Полезность: 667

Цитата(csnet @ 30.12.2013, 15:32) *
нет, все верно, конечная точка через get_user_origin

а ты пробовал взять горизонтальную координату и просто отнять - 45 градусов.
получишь вертикал, или моя логика фуфло.. х3


это правда тупо, но я все-таки попробовал :D
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: