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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
#1

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

14.08.2013, 17:31. Просмотров 489. Ответов 2
Метки нет (Все метки)

Помогите сделать алгоритм
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++
Доброго времени суток, прошу у Вас помощи. Мне нужна программа, которая взаимодействует с браузером. Мне 48 лет, когда то давным давно я...

Вывести направление робота после выполнения полученной команды - C++
Здравствуйте! Условие задачи: Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и...

Вывести направление робота после выполнения полученной команды. - C++
Case. Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и принимать три цифровые...

Найти угол направления. Есть начальная точка и следующая(направление) - C++
Помогите двоечнику с проблемой! :p Есть две точки типа: Нужно найти направление в градусах. Начальная точка P1, точка...

Расчитать величину и направление относа парашютиста, относительно точки десантирования - C++
Вот задача; имеется массив, содержащий данные о силе и направлении ветра на различных высотах. Произведена выброска парашютного десанта....

Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь - C++
#include <iostream> #include <time.h> #include <stdlib.h> using namespace std; template <class T> void sort(T ar,T size,T...

Найти направление движущейся окружности при столкновении с устойчивой окружностью в двумерном пространстве - C++
Как определить следующее направление движущейся окружности при столкновении с устойчивой окружностью в двумерном пространстве (рикошет...

круг - C++
Нужно вводить точку и что бы писало принадлежет ли она закрашеной области или нет

Круг и прямая - C++
Дорогие форумчане! Не откажите в помощи, если есть идеи по заданию. Алгоритм или небольшая помощь с кодом На плоскости заданы...

Круг в консоли - C++
Всем привет! Буду благодарен, если кто-нибудь сможет подсказать решение. И так, имеется класс Circle, задается радиус и нужно...

класс круг С++ - C++
Разработать класс "круг ", который определяется своим радиусом r. Класс должен владеть методами доступа к радиусу; методами определения...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
14.08.2013, 18:46     Направление движения (круг) #2
В чем вопрос?
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
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--;
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru