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

Маршрут движения по области. Как задать и маштабировать? - C++

Восстановить пароль Регистрация
 
CyberGenius
 Аватар для CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:19     Маршрут движения по области. Как задать и маштабировать? #1
Добрый день.
Стоит задача в ручную задать шаблон перемещения из точки А в точку Б. После создания этого шаблона необходимо применить этот шаблон для перемещения между рандомными точками области, с поворотом и необходимым масштабированием введенного маршрута.
Для лучшего понимания можно представить следующее:
мы в ручную передвигаем курсор из точки А в точку Б, программа запоминает маршрут передвижения курсора. Потом указываем случайные точки на экране и программа передвигает курсов в соответствие с записанным маршрутом, при необходимости поворачивая и масштабируя его.
Каким вообще образом можно подступить к решению такой задачи? Может есть какие то готовые библиотеки?

Добавлено через 2 часа 21 минуту
Ап, разве никто не может подсказать пути решения задачи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 18:19     Маршрут движения по области. Как задать и маштабировать?
Посмотрите здесь:

Маршрут C++
C++ Маршрут
C++ Кратчайший маршрут
Маршрут в таблице C++
C++ Как задать разную скорость движения кругам?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
30.05.2014, 18:30     Маршрут движения по области. Как задать и маштабировать? #2
Ну. Для начала, нужно получать данные о курсоре мыши. К примере, можно воспользоваться какой-нибудь библиотекой. К примеру SFML.

Добавлено через 3 минуты
Тоже самое мы делаем с точками. Тыкаем по экрану, собираем координаты. Потом "соединяем" точки и перемещаем какой-нибудь объект между ними.
CyberGenius
 Аватар для CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:30  [ТС]     Маршрут движения по области. Как задать и маштабировать? #3
Это не самое важное, данные о курсоре мыши можно получить и так:
C++
1
2
3
4
POINT pt;
GetCursorPos(&pt);
int cpx,cpy;
cpx=pt.x; cpy=pt.y;
Самое сложное(для меня), как полученные данные записать как некий маршрут, который потом можно будет использовать.

Предположим, будем получать и записывать данные о координатах мыши каждую миллисекунду, получим массив данных с координатами курсора. Теперь осталось понять, как можно полученные данные использовать для построения маршрута до произвольных точек на области. Нужно ведь учитывать и повороты и масштабирование.
CyberGenius
 Аватар для CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:39  [ТС]     Маршрут движения по области. Как задать и маштабировать? #4
Вот предположим мы провели мышью такой маршрут(первая картинка), мы записали координаты по всему маршруту. Теперь нам необходимо провести такой же маршрут но до произвольно выбранных точек на плоскости, при этом отмасштабировав и повернув изначальный маршрут(вторая картинка).
Миниатюры
Маршрут движения по области. Как задать и маштабировать?   Маршрут движения по области. Как задать и маштабировать?  
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
30.05.2014, 18:50     Маршрут движения по области. Как задать и маштабировать? #5
Если я правильно понял, то маршрут должен выглядеть как-то так?

Добавлено через 5 минут
Наш маршрут, это набор векторов. Мы можем его повернуть, повернув все вектора на нужный нам угол:
C++
1
2
3
4
5
6
std::vector2<double> multiply(std::vector2<double> input, double cs/*cos*/, double sn /*sin*/) {
  std::vector2<double> result;
  result.x = input.x * cs - input.y * sn;
  result.y = input.x * sn + input.y * cs;
  return result;
}
Добавлено через 1 минуту
И еще. Программа сама должна решать "как масштабировать" и "как поворачивать"?
CyberGenius
 Аватар для CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:56  [ТС]     Маршрут движения по области. Как задать и маштабировать? #6
Нет, маршрут это не вектор. Маршрут это шаблон. Мы вручную его заносим(например ведя курсором мыши).

После этого программа обладая шаблоном маршрутом должна провести путь от и до 2-х произвольно выбранных точек на плоскости, при этом повернув и отмасштабировав введенный нами шаблон нужным образом.
Yandex
Объявления
30.05.2014, 18:56     Маршрут движения по области. Как задать и маштабировать?
Ответ Создать тему
Опции темы

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