Контейнер данных
Рано или поздно появляется необходимость во всевозможных структурах хранения объектов – списках и т.п. Все те немногочисленные статьи, что до сегодняшнего момента мне попадались. Сводились к подключению сторонних библиотек. На мой же взгляд решение гораздо проще и всё это время, буквально лежало перед глазами. Адекватный перегружаемый интерфейс класса-контейнера с иерархической структурой предоставляет нам трёхмерная квази-модель полностью построенная на пивотах. Сама работа с контейнером сводится в таком случае к командам:
<O> Для организации структуры и работы с ней -
Рассмотрим пример создания древа. Пример весьма «корявый», но богатый на применение различных функций работы со структурой. Код:
Graphics3D 800,600,32 Саму же работу со структурой легко реализовать при помощи рекурсивных функций, что упростит работу с ними и повысит наглядность. Вот как это может выглядеть: Код:
Graphics3D 800,600,32 Минусов подобной организации я нашёл только два: :wallbash: Необходимость инициализации 3D-режима графики. Это, в общем-то, не так болезненно (никто вас не принуждает создавать камеры и рендерить сцену). Кроме того уже само название среды – Blitz3D – подразумевает, что вы пишете программу работы с 3х-мерной графикой, таким образом – для большинства программ применение таких структур не меняет режим графики. :wallbash: Дополнительные расходы на память. Что есть – то есть. Однако подумайте об удобстве, которое вы на мой взгляд получаете. :imp: |
Ответ: Контейнер данных
хм. интересно. правда, как-то непривычно такое их использование...
|
Ответ: Контейнер данных
Супер-оригинально
Респект До этого я использовал пивоты для упрощения расчетов вческих операций с 3д объектами (как не странно это работает намного быстрее математических расчетов) Например, вместо того, чтобы писать километровые расчеты с матрицами, просто ставим пивот, вращаем, двигаем куда надо, потом снимаем с него готовые значения. |
Ответ: Контейнер данных
полностью согласен с tormoz'ом, замечательная идея!
от себя могу посоветовать, что если все же будет камера, и будет рендер (обычно они есть), то лучше скрывать пивот (ну и что, что ничего итак не видно), наблюдается небольшое повышение производительности: Код:
Graphics3D 1024,768,32,2 |
Ответ: Контейнер данных
Респект за оригинальность!
|
Часовой пояс GMT +4, время: 17:36. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot