Re: Представление трехмерного массива в виде одномерного
От: Pavel Dvorkin Россия  
Дата: 08.12.13 14:43
Оценка: 2 (1) +1
Здравствуйте, Javaec, Вы писали:


J>И теперь, самое сложное. Множество объектов "скроллится". Т.е. данные, например по -x,-y,z становятся неактуальными их нужно удалить, сместив все элементы внутри массива по этим осям на 1.

J>А в x,y,-z тут же будут записаны новые, актуальные элементы. И Min Max векторы нужно будет пересчитывать.

Насколько я понимаю тебе нужен "зацикленный массив". Поясню для линейного. Пусть в нем N элементов. Введем понятие логического номера элемента — это номер в твоей модели, не в массиве как таковом. Например, нулевой элемент модели при скроллинге влево должен исчезнуть, первый — стать нулевым и т.д. Правильно я понял ?


Изначально

логический 0-й хранится в a[0]
логический 1-й хранится в a[1]
...
логический N-1 хранится в a[N-1]

то есть логические и физические номера совпадают.


Когда делается скроллинг влево, полагаем, что

логический 0-й хранится в a[1] // т.е. бывший логический 0-й исчез, а бывший логический 1-й стал нулевым

логический 1-й хранится в a[2]
...
логический N-1 хранится в a[0]

Еще один скроллинг вправо и имеем

логический 0-й хранится в a[2]
логический 1-й хранится в a[3]
...
логический N-2 хранится в a[0]
логический N-1 хранится в a[1]

и т.д.

При этом подходе ничего вообще сдвигать не надо.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.