Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
#1

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

30.05.2014, 18:19. Просмотров 407. Ответов 5
Метки нет (Все метки)

Добрый день.
Стоит задача в ручную задать шаблон перемещения из точки А в точку Б. После создания этого шаблона необходимо применить этот шаблон для перемещения между рандомными точками области, с поворотом и необходимым масштабированием введенного маршрута.
Для лучшего понимания можно представить следующее:
мы в ручную передвигаем курсор из точки А в точку Б, программа запоминает маршрут передвижения курсора. Потом указываем случайные точки на экране и программа передвигает курсов в соответствие с записанным маршрутом, при необходимости поворачивая и масштабируя его.
Каким вообще образом можно подступить к решению такой задачи? Может есть какие то готовые библиотеки?

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

Как задать разную скорость движения кругам? - C++
Всем добрый день!!! Вот дали задание: "Написать игровую программу "ипподром". играющий выбирает одну из четырех лошадей, состязающихся в...

Маршрут движения фрезы? - Delphi
Здравствуйте! Помогите разобраться со следующей задачей: 1. С помощью Canvas нарисовать выпуклый многоугольник (Деталь) (Это...

Определить маршрут движения. - Prolog
Задача: Создать БД с расписанием движения самолетов: Номер рейса, Пункт отправления, Пункт прибытия, ...

Вывести на экран компьютера маршрут движения робота - Turbo Pascal
Петя вместе со своим другом Пашей решили создать программу для урока информатики по теме "Моделирование". За основу работы они решили взять...

Как на изображении задать кликабельные области - Visual Basic .NET
Подскажите как VB 2010 сделать на JPG изображении области при нажатии на которые присходили определенные события

Скриншот определенной области. Как эту область задать - C#
Добрый день. С шарпом давно не работал, нужно создать прогу для себя. Есть код Bitmap bmp = new...

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

Добавлено через 3 минуты
Тоже самое мы делаем с точками. Тыкаем по экрану, собираем координаты. Потом "соединяем" точки и перемещаем какой-нибудь объект между ними.
0
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;
Самое сложное(для меня), как полученные данные записать как некий маршрут, который потом можно будет использовать.

Предположим, будем получать и записывать данные о координатах мыши каждую миллисекунду, получим массив данных с координатами курсора. Теперь осталось понять, как можно полученные данные использовать для построения маршрута до произвольных точек на области. Нужно ведь учитывать и повороты и масштабирование.
0
CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:39  [ТС] #4
Вот предположим мы провели мышью такой маршрут(первая картинка), мы записали координаты по всему маршруту. Теперь нам необходимо провести такой же маршрут но до произвольно выбранных точек на плоскости, при этом отмасштабировав и повернув изначальный маршрут(вторая картинка).
0
Миниатюры
Маршрут движения по области. Как задать и маштабировать?   Маршрут движения по области. Как задать и маштабировать?  
YouDoItWrong
47 / 47 / 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 минуту
И еще. Программа сама должна решать "как масштабировать" и "как поворачивать"?
0
CyberGenius
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 100
30.05.2014, 18:56  [ТС] #6
Нет, маршрут это не вектор. Маршрут это шаблон. Мы вручную его заносим(например ведя курсором мыши).

После этого программа обладая шаблоном маршрутом должна провести путь от и до 2-х произвольно выбранных точек на плоскости, при этом повернув и отмасштабировав введенный нами шаблон нужным образом.
0
30.05.2014, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 18:56
Привет! Вот еще темы с ответами:

Как задать размер выделенной области в пикселах, а не в процентах? - Photoshop
Как в фотошопе задать размер выделенной области в пикселах, а не в процентах? Спасибо.

.NET 4.x Запрет движения курсора в определённой области - C# WPF
Добрый день. Задача такова - в центре формы есть control (допустим Rectangle), как можно сделать так, что-бы курсор не заходил в...

Задать условие и закон движения - C#
Добрый день. Планирую реализовать: несколько объектов, каждый движется по собственному закону, проверяя условие. Закон будет в формате...

Маштабировать изображение - JavaScript
Здравствуйте уважаемые Javascript-программисты. У меня на сайте (сделан на джумла) стоит галерея Simple Image Gallery. Вот страница с...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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