Russian Qt Forum
Сентябрь 21, 2017, 08:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 3 4 [5]   Вниз
  Печать  
Автор Тема: Переделать старые структуры  (Прочитано 2563 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 9797


Просмотр профиля
« Ответ #60 : Сентябрь 06, 2017, 13:09 »

Код
C++ (Qt)
void DrawCurve(PointGenerator * generator, Time from, Time to, Time step)
{
   for (Time time = from; time <= to; time += step )
       AddOpenGLVertex(generator->generate(time));
}

Если Вам нравится, итерируя по точкам кривой, каждый раз писать как в варианте 1, то, как говорится: хозяин - барин Улыбающийся. Я же предпочитаю второй вариант.
Второй вариант как раз то о что "разбивают ноги". Кто такой Time? Ах, сейчас просто double, это так, "на будущее". Кто такой PointGenerator? Надо открывать хедер, скорее всего еще и исходник. А там еще куда-то отфутболят. От этого лазания по бесконечному делегированию быстро устаем. Кто мешал сразу делать содержательную часть - хотя бы найти пару точек кривой? ЗАЧЕМ нужна прокладка? Какую "гибкость" мы хотели этим создать Непонимающий

Основной вопрос: эта кривая нужна больше чтобы её использовать как конечный набор точек(интерполированных) на заданном интервале времени, или она нужна чтобы её постоянно редактировали, загружали/сохраняли/печатали её ключи?
Не считал чего больше, но оба аспекта (интерполяция и редактирование) юзаются очень интенсивно. Только никак не пойму какое отношение это имеет к данной теме:?  Улыбающийся

Но может быть такой сценарий использования, что параметры сплайна используются при интерполяции, загружаются из файла и в программе не редактируются. Может эти ключевые точки формируются во внешнем продвинутом редакторе, снимаются с датчиков motion capture, да мало ли ещё откуда появляются.
Да, и из файлов, и из очень многих других мест (все и не помню). И что? Разве это как-то влияет на структуру данных?
Записан
ViTech
Крякер
****
Offline Offline

Сообщений: 353



Просмотр профиля
« Ответ #61 : Сентябрь 06, 2017, 14:01 »

Второй вариант как раз то о что "разбивают ноги". Кто такой Time? Ах, сейчас просто double, это так, "на будущее". Кто такой PointGenerator? Надо открывать хедер, скорее всего еще и исходник. А там еще куда-то отфутболят. От этого лазания по бесконечному делегированию быстро устаем. Кто мешал сразу делать содержательную часть - хотя бы найти пару точек кривой? ЗАЧЕМ нужна прокладка? Какую "гибкость" мы хотели этим создать Непонимающий

Исходники не нужны, достаточно заголовка с интерфейсом из чистых виртуальных методов. Если у вас об это "ноги разбивают", тут уже помочь ничем не могу. Равно как и с пониманием "гибкости".

Не считал чего больше, но оба аспекта (интерполяция и редактирование) юзаются очень интенсивно. Только никак не пойму какое отношение это имеет к данной теме:?  Улыбающийся

Я про то, что это разные варианты использования. И в каждом варианте нужен свой набор способностей от "кривой", которые я разделил в интерфейсах. Нравится всё держать в одном месте - на здоровье Улыбающийся. Из этого сообщения можете начинать читать с CurveGenerator (не обращая внимание на PointGenerator и EditableCurve) и далее про Interpolator. Но там тоже много классов, от которых Вам станет грустно Улыбающийся.

Но может быть такой сценарий использования, что параметры сплайна используются при интерполяции, загружаются из файла и в программе не редактируются. Может эти ключевые точки формируются во внешнем продвинутом редакторе, снимаются с датчиков motion capture, да мало ли ещё откуда появляются.
Да, и из файлов, и из очень многих других мест (все и не помню). И что? Разве это как-то влияет на структуру данных?

Для меня структура данных не так важна, как набор методов, который может измениться в зависимости от того, будет ли "кривая" редактироваться или нет. Но в Вашем случае да, структура данных не изменится.
Записан

Пока сам не сделаешь...
deMax
Бывалый
*****
Offline Offline

Сообщений: 462



Просмотр профиля
« Ответ #62 : Сентябрь 06, 2017, 16:00 »

Мне кажеться Igors должен открыть предметную область где он их применяет. А то я уже забыл что нужно сделать и в чем спор двух философов.
Ну и если у автора уже есть решения, зачем искать все возможные решения?
Записан
ViTech
Крякер
****
Offline Offline

Сообщений: 353



Просмотр профиля
« Ответ #63 : Сентябрь 06, 2017, 18:01 »

... в чем спор двух философов.

Спор довольно стар как мир: "крупный монолит" vs "мелкие кирпичи" Улыбающийся. Можно из кирпичей что-то причудливое строить, можно из монолита куски выдалбливать, в конечном итоге могут получиться похожие конструкции. Кому что нравится Улыбающийся.
Записан

Пока сам не сделаешь...
Bepec
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 7557


W7 x64, Qt SDK 4.7.2, Руки v1.5


Просмотр профиля
« Ответ #64 : Сентябрь 06, 2017, 19:13 »

Спор прост - Igors хочет маленький кирпичик с функционалом большого монолита Веселый
Записан

"Мастер простых решений" Ɋt

чОрный список: Spark
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 9797


Просмотр профиля
« Ответ #65 : Сентябрь 07, 2017, 10:06 »

Мне кажеться Igors должен открыть предметную область где он их применяет. А то я уже забыл что нужно сделать и в чем спор двух философов.
Все написано в стартовом посте. Попытка углубиться в предметную часть уже была (привел примеры 2 простых сплайнов как Вы просили). Ну, как и следовало ожидать, эффект "больше инфы" нулевой. Согласен, тема себя исчерпала, наша полемика с ViTech ни к чему не ведет, очевидно каждая сторона останется при своем мнении Улыбающийся

Возможно я создам новую тему где постараюсь по-другому "расставить акценты", надо только хорошо обдумать чтобы не получилось "как всегда" Улыбающийся Там поговорим
Записан
Страниц: 1 ... 3 4 [5]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.154 секунд. Запросов: 22.