Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
прогаю
 Аватар для rkc137
2 / 2 / 0
Регистрация: 22.04.2019
Сообщений: 36

Неправильно изменяется вектор движения при работе с углом

12.11.2023, 15:00. Показов 1051. Ответов 9

Студворк — интернет-сервис помощи студентам
Пишу 2D игру, где осуществляется управление космическим кораблём. Корабль можно двигать во все стороны и помимо этого вращать. Движение которое не зависит от направления корабля работает нормально, но движение учитывающее направление у меня не выходит

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float rotation_angle = getRotation();
 
auto md = &input_move_direction;
sf::Vector2f controling_mv = {
    -md->left * speed.left + md->right * speed.right,
    md->down * speed.down + -md->up * speed.up
};
 
float cos = std::cos(rotation_angle);
float sin = std::sin(rotation_angle);
sf::Vector2f rotaded_mv_velocity = {
    controling_mv.x * cos - controling_mv.y * sin,// x' = x cos θ − y sin θ
    controling_mv.y * cos + controling_mv.x * sin // y' = x sin θ + y cos θ
};
 
velocity += rotaded_mv_velocity + sf::Vector2f(0, gravity);
если угол поменять хотя бы на пару градусов, то движение становится совсем не предсказуемым

проблема явно в моменте с тем что я как то не так формирую rotaded_mv_velocity, не могу понять в чём именно
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2023, 15:00
Ответы с готовыми решениями:

Сделать блок-схему к курсовой работе (движения тела, брошенного под углом к горизонту)
Есть готовая курсовая работа. Нужно вот сделать блок-схему с метода решения . Уже есть написанная с программы. Документ вышлю лично .

Не изменяется элемент вектора при работе с ним по указателю
Здравствуйте. Проблема следующая. Пишу свою велосипедную (на это, как на источник проблемы, не указывать) реализацию бинарного дерева для...

При повороте обьекта вектор движения не меняется
решил допиливать старый проект и нашел ошибку когда я поворачиваю мышь звездалёт поворачивается НО двигается в тех-же направлениях что и...

9
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
12.11.2023, 17:27
Цитата Сообщение от rkc137 Посмотреть сообщение
float rotation_angle = getRotation();
Это угол в радианах или градусах?

Не по теме:

В остальное не вникал пока.

0
прогаю
 Аватар для rkc137
2 / 2 / 0
Регистрация: 22.04.2019
Сообщений: 36
12.11.2023, 17:31  [ТС]
в градусах
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
12.11.2023, 17:32
Лучший ответ Сообщение было отмечено rkc137 как решение

Решение

Цитата Сообщение от rkc137 Посмотреть сообщение
в градусах
Но функции std::cos/std::sin ожидают угол в радианах.
1
прогаю
 Аватар для rkc137
2 / 2 / 0
Регистрация: 22.04.2019
Сообщений: 36
12.11.2023, 17:39  [ТС]
получается надо изначальный угол перевести в радианы?
0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
12.11.2023, 17:40
Цитата Сообщение от rkc137 Посмотреть сообщение
C++
1
+ -md->up * speed.up
- Так и надо писать сразу минус. А скриншот игры можно?
0
12.11.2023, 17:40

Не по теме:

Цитата Сообщение от rkc137 Посмотреть сообщение
получается надо изначальный угол перевести в радианы?
Логично...

0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
12.11.2023, 17:40
Цитата Сообщение от rkc137 Посмотреть сообщение
получается надо изначальный угол перевести в радианы?
- да, домножь на M_PI/180.
0
прогаю
 Аватар для rkc137
2 / 2 / 0
Регистрация: 22.04.2019
Сообщений: 36
12.11.2023, 17:50  [ТС]
Я воспринимаю минус как часть значения, просто легче понять.
А показывать пока нечего, до момента когда появится, что то интересное ещё не скоро
0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
12.11.2023, 18:16
Как ты эту всю игру свою воспринимаешь и синтаксис C++ - это могут быть разные вещи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2023, 18:16
Помогаю со студенческими работами здесь

Как добиться плавного движения при работе с пиксельными изображениями
Добрый день. Я работаю с пиксельными изображениями (32x32 и 64x64) и у меня такая проблема: насколько я понимаю, если двигать такое...

ошибка при работе с word, неправильно(?) считает символы
функция AddLine(int num) должна добавлять строку в документ. При добавлении создается новый region в документы с помощью функции AddRgn()....

Неправильно работает функция write при работе с файлом
Добрый день. Выполняю задачу по созданию файла с произвольным доступом и взаимодействию с ним. Имеется функция, которая должна добавлять...

Неправильно работает деструктор при работе с массивом объектов
В программе есть два конструктора: один - по умолчанию, для создания массива объектов, другой - с параметрами, для инициализации полей...

Неправильно отображаются русские буквы при работе утилиты ftp.exe в Windows XP
Добрый день, форумчане. Написал bat файлик который отлично работает на windows 10. Пытаюсь запустить на Windows XP - неправильно...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru