Форум программистов, компьютерный форум CyberForum.ru

Направление движения (круг) - C++

Восстановить пароль Регистрация
 
Anatoliy Coder
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
14.08.2013, 17:31     Направление движения (круг) #1
Помогите сделать алгоритм
GoDirection - это угол к которому нужно поворачиваться
player.direction - это угол персонажа в данный момент
Задача такая: если player.direction в области, которая какбы больше GoDirection то мы от player.direction отнимаем градусы, а если какбы меньше то прибавляем. Ну типа чтобы player правильно разворачивался
p.s. если градусы начинают идти больше 360 автоматом на 0 все сходит.
уже больше пол дня сижу ничего не выходит особенно когда дело касается перехода с 360-0 градусов
Миниатюры
Направление движения (круг)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2013, 17:31     Направление движения (круг)
Посмотрите здесь:

круг в консоли C++
C++ круг
Вывести направление робота после выполнения полученной команды. C++
C++ Расчитать величину и направление относа парашютиста, относительно точки десантирования
C++ Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь
Направление C++
C++ Круг в консоли
Найти угол направления. Есть начальная точка и следующая(направление) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
14.08.2013, 18:46     Направление движения (круг) #2
В чем вопрос?
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
14.08.2013, 20:12     Направление движения (круг) #3
Цитата Сообщение от Anatoliy Coder Посмотреть сообщение
не выходит особенно когда дело касается перехода с 360-0 градусов
C++
1
градусы=градусы%360;
а ты уверен что тебе градусы нужны? просто векторами можно это все сделать проще.

C++
1
2
3
4
5
6
7
8
9
10
11
12
double dif=GoDirection-player.direction;
dif=dif%360;
while(dif<0)
 dif+=360;
if(dif<180)
{
 player.direction++;
}
else
{
 player.direction--;
}
Добавлено через 1 час 11 минут
или так лучше и нагляднее
C++
1
2
3
4
5
6
7
8
9
double dif=player.direction-GoDirection;
while(dif>=180)
  dif-=360;
 while(dif<-180)
  dif+=360;
if(dif<0)
 player.direction++;
if(dif>0)
 player.direction--;
Yandex
Объявления
14.08.2013, 20:12     Направление движения (круг)
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru