Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Математика, физика, геометрия... 
:(
    Опции темы
sidiakin
Дата 6.2.2012, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

Репутация: нет
Всего: нет



Интересуют формулы, котор. используются в создании игр.

1-ый вопрос по тригонометрии:
Косм. корабль вращается вокруг своей оси при нажатии клавиш "лево\право", при нажатии вперед приращения по X и Y вычисляются так:

Код

opposing side += hypotenuse * sin( angle );
adjacent side -= hypotenuse * cos( angle ); 


Т.е. код на Java получается таким:

Код

if(input.isKeyDown(Input.KEY_W))
        {
            float hip = 0.4f * delta;
 
            float rotation = plane.getRotation();
 
            x+= hip * Math.sin(Math.toRadians(rotation));
            y-= hip * Math.cos(Math.toRadians(rotation));
        }

Автор пишет, что "hip=0.4" - это выбор шага перемещения, а затем он этот шаг переводит в XY коорд.

Объясните пож. на пальцах, как это работает ?  smile Почему X+ и Y- ? Причем тут гипотенуза? Спасибо!
PM MAIL   Вверх
Mirkes
Дата 7.2.2012, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(sidiakin @ 6.2.2012,  18:58)
Интересуют формулы, котор. используются в создании игр.

1-ый вопрос по тригонометрии:
Косм. корабль вращается вокруг своей оси при нажатии клавиш "лево\право", при нажатии вперед приращения по X и Y вычисляются так:

Код

opposing side += hypotenuse * sin( angle );
adjacent side -= hypotenuse * cos( angle ); 


Т.е. код на Java получается таким:

Код

if(input.isKeyDown(Input.KEY_W))
        {
            float hip = 0.4f * delta;
 
            float rotation = plane.getRotation();
 
            x+= hip * Math.sin(Math.toRadians(rotation));
            y-= hip * Math.cos(Math.toRadians(rotation));
        }

Автор пишет, что "hip=0.4" - это выбор шага перемещения, а затем он этот шаг переводит в XY коорд.

Объясните пож. на пальцах, как это работает ?  smile Почему X+ и Y- ? Причем тут гипотенуза? Спасибо!

Формулы как минимум странные. Без рисунка вряд ли можно что-нибудь понять.
При вращении тела по орбите если угол равен rotation,
то координаты тела относительно центра вращения, помещенного в начало координат будут
Код

x=R*Math.cos(Math.toRadians(rotation));
y=R*Math.sin(Math.toRadians(rotation));

запись x+=xx означает x=x+xx.
почему в данном случае формулы вычисления проекций поменялись местами и почему приращения по x и y имеют разный знак без рисунка не понять.


--------------------
Mirkes
PM MAIL   Вверх
Andryulik
Дата 10.3.2015, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.3.2015
Где: Украина

Репутация: нет
Всего: нет



Да, хлопотно все это!  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.1125 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.