Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2016, 17:41   #1
evve
Новичок
Джуниор
 
Регистрация: 03.03.2016
Сообщений: 2
По умолчанию Перемещение в трехмерном пространстве

Здравствуйте! Такой вопрос. Есть координаты (x, y, z) которые обновляются каждые 500-1000 мс, до получения новых координат надо плавно и быстро переехать со старых на текущие.

Буду очень благодарен за любые комментарии по данному вопросу (возможно есть уже готовое решение?).
Заранее спасибо!
evve вне форума Ответить с цитированием
Старый 03.03.2016, 17:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

offtop
evve, Вы же понимаете, что в такой формулировке, без конкретики кто и как "переезжает" ответ Вы вряд ли получите?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2016, 18:09   #3
evve
Новичок
Джуниор
 
Регистрация: 03.03.2016
Сообщений: 2
По умолчанию

Если честно, я даже не знаю как по другому сформулировать.
К примеру, точка находится на координатах 123.0, 654.0, 10.0. Через 500-1000мс ее нужно переместить на новые координаты, если я просто буду устанавливать их - она будет перемещаться рывками. Мне надо как-то сгладить этот процесс
evve вне форума Ответить с цитированием
Старый 03.03.2016, 18:34   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну есть разные способы интерполяции. Можно двигать каждын 10мс из 1000 почуть...
p51x вне форума Ответить с цитированием
Старый 04.03.2016, 12:59   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
которые обновляются каждые 500-1000 мс
плавный переезд = последовательная смена координат с интервалом "кадров" 40 мс (25 кадров в секунду) ????

за 500 мс (до прихода еще БОЛЕЕ новых координат) можно выполнить(показать) всего несколько с промежуточных точек 500/40 = 12
x(i) =x0 + (x1-x0)/12*i; //аналогично для y, z координат.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.03.2016, 07:59   #6
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

движение представь в виде трехмерного вектора. ты получаешь новый вектор движения, каждую секунду. подели его, скажем на 50, получеш новый более короткий вектор. Вот и перемещайся на его величину каждые 1/50 секунды Vmove.

К стати точку в пространстве, то же удобно представит в виде вектора Vp. Тогда каждую следующую точку(вектор) будешь получать путем сложения.
Vp = Vp + Vmove;

Для этого удобно написать класс трехмерный вектор. Перегрузи в нем операторы сложения, деления, ну и еще если какие понадобятся.

Все просто
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание класса (Java) вектор в трехмерном пространстве Tinako Помощь студентам 0 12.11.2014 14:10
График(и) в трехмерном пространстве attacker Qt и кроссплатформенное программирование С/С++ 1 26.12.2012 12:20
Изображение гиперболического параболоида в трехмерном пространстве SSlava Фриланс 8 06.12.2011 21:37
Пересечение отрезок в трехмерном пространстве. kir_rik Помощь студентам 0 25.05.2010 15:29
Нарисовать точку, движущуюся в трехмерном пространстве Goldmane Помощь студентам 5 12.04.2009 20:14