![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 03.03.2016
Сообщений: 2
|
![]()
Здравствуйте! Такой вопрос. Есть координаты (x, y, z) которые обновляются каждые 500-1000 мс, до получения новых координат надо плавно и быстро переехать со старых на текущие.
Буду очень благодарен за любые комментарии по данному вопросу (возможно есть уже готовое решение?). Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
offtop
evve, Вы же понимаете, что в такой формулировке, без конкретики кто и как "переезжает" ответ Вы вряд ли получите?.. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 03.03.2016
Сообщений: 2
|
![]()
Если честно, я даже не знаю как по другому сформулировать.
К примеру, точка находится на координатах 123.0, 654.0, 10.0. Через 500-1000мс ее нужно переместить на новые координаты, если я просто буду устанавливать их - она будет перемещаться рывками. Мне надо как-то сгладить этот процесс |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
Ну есть разные способы интерполяции. Можно двигать каждын 10мс из 1000 почуть...
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
за 500 мс (до прихода еще БОЛЕЕ новых координат) можно выполнить(показать) всего несколько с промежуточных точек 500/40 = 12 x(i) =x0 + (x1-x0)/12*i; //аналогично для y, z координат.
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]()
движение представь в виде трехмерного вектора. ты получаешь новый вектор движения, каждую секунду. подели его, скажем на 50, получеш новый более короткий вектор. Вот и перемещайся на его величину каждые 1/50 секунды Vmove.
К стати точку в пространстве, то же удобно представит в виде вектора Vp. Тогда каждую следующую точку(вектор) будешь получать путем сложения. Vp = Vp + Vmove; Для этого удобно написать класс трехмерный вектор. Перегрузи в нем операторы сложения, деления, ну и еще если какие понадобятся. Все просто |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание класса (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 |