|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2016, 17:41 | #1 |
Новичок
Джуниор
Регистрация: 03.03.2016
Сообщений: 2
|
Перемещение в трехмерном пространстве
Здравствуйте! Такой вопрос. Есть координаты (x, y, z) которые обновляются каждые 500-1000 мс, до получения новых координат надо плавно и быстро переехать со старых на текущие.
Буду очень благодарен за любые комментарии по данному вопросу (возможно есть уже готовое решение?). Заранее спасибо! |
03.03.2016, 17:59 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
offtop
evve, Вы же понимаете, что в такой формулировке, без конкретики кто и как "переезжает" ответ Вы вряд ли получите?.. |
03.03.2016, 18:09 | #3 |
Новичок
Джуниор
Регистрация: 03.03.2016
Сообщений: 2
|
Если честно, я даже не знаю как по другому сформулировать.
К примеру, точка находится на координатах 123.0, 654.0, 10.0. Через 500-1000мс ее нужно переместить на новые координаты, если я просто буду устанавливать их - она будет перемещаться рывками. Мне надо как-то сгладить этот процесс |
03.03.2016, 18:34 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Ну есть разные способы интерполяции. Можно двигать каждын 10мс из 1000 почуть...
|
04.03.2016, 12:59 | #5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Цитата:
за 500 мс (до прихода еще БОЛЕЕ новых координат) можно выполнить(показать) всего несколько с промежуточных точек 500/40 = 12 x(i) =x0 + (x1-x0)/12*i; //аналогично для y, z координат.
программа — запись алгоритма на языке понятном транслятору
|
|
05.03.2016, 07:59 | #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 |