Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Item
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    27
    Репутация:
    4 ±

    Cинусы, косинусы

    Доброго, при создание системы подносов с едой столкнулся с небольшой трудностью.А именно: определение координат (X, Y, Z)и угла поворота(Angle) самого подноса.Необходимо определить точные координаты.

    (Опирался на эту тему: http://pro-pawn.ru/showthread.php?37...BE%D1%81%D0%B8)
    PHP код:
    new 
            
    Floatplayer_pos_x
            
    Floatplayer_pos_y
            
    Floatplayer_pos_z,
            
    Floatangle;
        
        
    GetPlayerPos(playeridplayer_pos_xplayer_pos_yplayer_pos_z);
        
    GetPlayerFacingAngle(playeridangle);

        
        
    CreateDynamicObject(2355player_pos_x 0.8 * - floatsin(angledegrees), player_pos_y 0.8 floatcos(angledegrees), player_pos_z 0.9, -25.40023.300angle 75.00 /** floatcos(angle, degrees)*/00, -130.0030.00); 
    При использование этих вычислений, получается заметная погрешность.Поднос не ложится ровно-напротив игрока а ложится со смещением в сторону
      Открыть/закрыть
    Прошу обратить внимание именно на ноги



    Подозреваю, что тут дело именно в этом параметре - "angle + 75.00 /** floatcos(angle, degrees)*/", но к сожалению, моих знаний в математике не достаточно для решения данной проблемы.
    Подскажите пожалуйста, по какой формуле можно произвести точные расчеты.

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    player_pos_x += 0.5 floatsin(-angledegrees);
    player_pos_y += 0.5 floatcos(-angledegrees); 
    Не успел полностью ответить, завтра полностью отвечу (если вместо меня никто не ответит).
    Последний раз редактировалось L0ndl3m; 21.04.2016 в 23:09.

  3. #3
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    PHP код:
    stock GetCoordsBefore(Float:xFloat:yFloat:aFloat:distance, &Float:res_x, &Float:res_y)
    {
        
    res_x + (distance floatsin(-adegrees));
        
    res_y + (distance floatcos(-adegrees));

    PHP код:
    new
        
    Float:player_pos_x,
        
    Float:player_pos_y,
        
    Float:player_pos_z,
        
    Float:angle,
        
    Float:object_pos_x,
        
    Float:object_pos_y;

    GetPlayerPos(playeridplayer_pos_xplayer_pos_yplayer_pos_z);
    GetPlayerFacingAngle(playeridangle);

    GetCoordsBefore(player_pos_xplayer_pos_yangle0.8object_pos_xobject_pos_y);

    CreateDynamicObject(2355object_pos_xobject_pos_yplayer_pos_z 0.9, -25.40023.300angle 75.0000, -130.0030.00); 

  4. Пользователь сказал cпасибо:
    Quman (22.04.2016)
  5. #4
    Аватар для Item
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    27
    Репутация:
    4 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    PHP код:
    stock GetCoordsBefore(Float:xFloat:yFloat:aFloat:distance, &Float:res_x, &Float:res_y)
    {
        
    res_x + (distance floatsin(-adegrees));
        
    res_y + (distance floatcos(-adegrees));

    PHP код:
    new
        
    Float:player_pos_x,
        
    Float:player_pos_y,
        
    Float:player_pos_z,
        
    Float:angle,
        
    Float:object_pos_x,
        
    Float:object_pos_y;

    GetPlayerPos(playeridplayer_pos_xplayer_pos_yplayer_pos_z);
    GetPlayerFacingAngle(playeridangle);

    GetCoordsBefore(player_pos_xplayer_pos_yangle0.8object_pos_xobject_pos_y);

    CreateDynamicObject(2355object_pos_xobject_pos_yplayer_pos_z 0.9, -25.40023.300angle 75.0000, -130.0030.00); 
    Все-таки смещение присутствует.И дело, как я понимаю, в параметре "angle + 75.00".
    Получается еще для него надо выводить какую-то отдельную формулу

  6. #5
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Item Посмотреть сообщение
    Все-таки смещение присутствует.И дело, как я понимаю, в параметре "angle + 75.00".
    Получается еще для него надо выводить какую-то отдельную формулу
    Я на скриншотах не вижу никакого смещения, попробуй другие скины. А параметр angle + 75.00 отвечает угол наклона объекта по оси Z.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •