Russian Qt Forum
Март 29, 2024, 14:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

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

Сообщений: 11445


Просмотр профиля
« : Октябрь 06, 2015, 13:52 »

Добрый день

Примечание: к слот/сигнал это не имеет никакого отношения.

Есть список напр из 3 объектов. Пользователь нажал бубочку "расчет", в рез-те записался файл который можно использовать, причем не только для тех 3 что были на момент расчета, но и для любых других. Т.е. в списке можно включать/отключать, добавлять, удалять и записанный файл работает с новым списком - так задумано. Сейчас файл хранит просто "слоты" - индексы 0, 1, 2. Ну ясно что если добавит 4 объекта, то с последним ничего не будет - в файле данные только для 3. Но можно заменить любой из 3 на новый, или отключить последний - все нормально.

И вот мелкая неприятность: когда отключается (или удаляется) "не последний", напр 0-й, то все сдвигается - 1-й попадает на место 0-го, 2-й на место 1-го. Когда файл используется можно указать ему что такой-то слот сейчас выключен. Но как (на каком основании) это делать? Напр
Цитировать
- Obj 0
+ Obj 1
+ Obj 2
Так хочется чтобы Obj 1(2) оставались слотами 1 и 2, а слот 0 неактивен
Цитировать
- Obj 0
+ Obj_new
+ Obj 1
+ Obj 2
А так желаемый рез-т чтобы активный Obj_new использовался вместо Obj 0 (как сейчас и работает)

Как это разрулить?

Спасибо


Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Октябрь 06, 2015, 22:14 »

сохранять ID слотов, а не только индексы?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #2 : Октябрь 06, 2015, 22:35 »

сохранять ID слотов, а не только индексы?

У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..) 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Октябрь 06, 2015, 23:06 »

сохранять ID слотов, а не только индексы?

У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..) 

Ну дык это, как же, там бубочка есть, если ее того, то в файл слот того, епта, а потом если еще раз, то оно уже не так, во Грустный

http://tomsk.fm/watch/191979
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #4 : Октябрь 06, 2015, 23:18 »

Цитировать
то в файл слот того, епта, а потом
Не, не, в Казани реальные пацаны говорят не ёпта, а  ибтэ) "Есть денги ибтэ? А если найду" Смеющийся
Жаргон, но всё же..)
« Последнее редактирование: Октябрь 06, 2015, 23:20 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Октябрь 06, 2015, 23:29 »

Не, не, в Казани реальные пацаны говорят не ёпта, а  ибтэ) "Есть денги ибтэ? А если найду" Смеющийся

Век живи - век учись Улыбающийся Никогда в Казани не был... А как там в моде нынче, кепка-беляш или "классика"-восьмиклинка? Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #6 : Октябрь 06, 2015, 23:54 »

Цитировать
Никогда в Казани не был... А как там в моде нынче, кепка-беляш или "классика"-восьмиклинка?
Не, ну Казань сейчас цивильный город, можно, конечно, нарваться на гопоту где-нить на "жилке", но там сейчас не так как было  раньше) Запуганные они стали какие то..  
Помню мы с девчёнками ночью там алкоголь покупали (недогон так сказать) и ничего, побратались с местными пацанами даже) И нормуль)  Но это, возможно, мы уже сами под мухой были.. Хотя даже и не возможно, а точно))
« Последнее редактирование: Октябрь 06, 2015, 23:59 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Октябрь 07, 2015, 05:36 »

У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..)  
Есть 3 объекта, напр шарик, кубик и плоскость. Запустили физический движок. Шарик начал падать под действием тяжести, отскочил от плоскости, ударил кубик и.т.д. Это "симуляция" которая в общем случае может считаться долго. Естественно записать все посчитанные траектории в файл, чтобы каждый раз симулятор не гонять. Столь же естественно вместо простого шарика подставить что-то посложнее/поинтереснее и пусть оно движется по рассчитанному пути.

сохранять ID слотов, а не только индексы?
Неясно что дальше.

Позиция 1: файл может быть назначен извне (с диска), имеем какие-то "левые" ID (в файле). Ну может здесь и объективно решения нет (не знаю)

Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?

Как-то я тут растерялся...  
« Последнее редактирование: Октябрь 07, 2015, 05:38 от Igors » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #8 : Октябрь 07, 2015, 07:05 »

Цитировать
Есть 3 объекта, напр шарик, кубик и плоскость. Запустили физический движок. Шарик начал падать под действием тяжести, отскочил от плоскости, ударил кубик и.т.д. Это "симуляция" которая в общем случае может считаться долго. Естественно записать все посчитанные траектории в файл, чтобы каждый раз симулятор не гонять. Столь же естественно вместо простого шарика подставить что-то посложнее/поинтереснее и пусть оно движется по рассчитанному пути.
А с чего Вы взяли, что что-то отличное от шарика будет иметь ту же траекторию? В поле тяжести (однородной) у них разве совпадут траектории центов масс и то, только до первого столкновения с чем либо..
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Октябрь 07, 2015, 07:14 »

А с чего Вы взяли, что что-то отличное от шарика будет иметь ту же траекторию? В поле тяжести (однородной) у них разве совпадут траектории центов масс и то, только до первого столкновения с чем либо..
То юзер решает устраивает ли его аппроксимация сложного объекта шариком (или др "Proxy Shape"). А Вы от темы не отвлекайтесь  Улыбающийся
Записан
Bepec
Гость
« Ответ #10 : Октябрь 07, 2015, 07:37 »

Что вы паритесь?
Вы хотите чтобы индексы шли с нуля, по количеству объектов. Так создавайте их всегда при получении данных с файла, а после анализируйте, уже добавляя признаки "отключения/включения".

Т.е. вместо использования статичных индексов используйте относительные, перерасчитываемые при вкл/откл объекта.

например:
Код:
загружаем
- Obj // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj // индекс в массиве 1, дополнительный индекс 0
+ Obj // индекс в массиве 2, дополнительный индекс 1

Втыкнули доп объект
Код:
- Obj          // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj_new      // индекс в массиве 1, дополнительный индекс 0
+ Obj 1        // индекс в массиве 2, дополнительный индекс 1
+ Obj 2        // индекс в массиве 3, дополнительный индекс 2

Переключили вкл/выкл для Obj, перерасчет дополнительных индексов
Код:
+ Obj          // индекс в массиве 0, дополнительный индекс 0
+ Obj_new      // индекс в массиве 1, дополнительный индекс 1
+ Obj 1        // индекс в массиве 2, дополнительный индекс 2
+ Obj 2        // индекс в массиве 3, дополнительный индекс 3

Т.е. вам всего то надо будет работать по дополнительному индексу, а не по индексу массива.

PS но всё равно даже на такой ответ Igors скажет - смена темы / непонятная придирка / насмешка / пожелание не слышать больше ответов / добавление условий к задаче / смена задачи / демагогическое усложнение условия Улыбающийся
« Последнее редактирование: Октябрь 07, 2015, 07:43 от Bepec » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Октябрь 07, 2015, 07:55 »

Т.е. вам всего то надо будет работать по дополнительному индексу, а не по индексу массива.
Пробуем. Юзер выключил первый (нулевой) объект. Вообще-то он его спокойно может удалить - ничем не рискует, файл-то есть (это я к тому что отслеживание неактивных все проблемы не решит).

загружаем
- Obj // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj // индекс в массиве 1, дополнительный индекс 0
+ Obj // индекс в массиве 2, дополнительный индекс 1
По "дополнительным" тот же "сдвиг" что и сейчас (и чего хотелось бы избежать). Если он воткнет активный (между первой и второй строками) - будет норм, так это и сейчас так работает

В общем - не понял
« Последнее редактирование: Октябрь 07, 2015, 07:57 от Igors » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #12 : Октябрь 07, 2015, 09:12 »

Цитировать
Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?

В смысле заменены? Их удалили? Тогда старые удалить из файла, а новые заново пересчитать.

Имя объекта прт этом может меняться как угодго, главное, чтоб id были уникальными.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Октябрь 07, 2015, 11:56 »

Цитировать
Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?

В смысле заменены? Их удалили? Тогда старые удалить из файла, а новые заново пересчитать.
Файл не подлежит "частичному пересчету". См. пример выше для объектов шарик, кубик и плоскость. Удалять из файла также ничего нельзя - в любой момент "оригинальная" конфигурация может быть восстановлена.

[OFF]
Вы даете типичные ответы "на основании (богатого) опыта" Улыбающийся Вот только опыт этот выглядит удивительно однообразно и узковато - из того же ассыстентского ведра Улыбающийся
[/OFF]
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #14 : Октябрь 07, 2015, 12:16 »

Цитировать
Вы даете типичные ответы "на основании (богатого) опыта" Улыбающийся Вот только опыт этот выглядит удивительно однообразно и узковато - из того же ассыстентского ведра Улыбающийся

Какие вопросы, такие и ответы Улыбающийся Как я должен понимать фразу "все "оригиналы" уже заменены"?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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