Personal Library
Материал из ALAS.
[ПримерРусскойСтраницы]
[править]
Общее описание
- Нечто вроде уютного трехмерного рабочего места для чтения книг. Книги можно брать/класть на полки, на стол, складывать в кучки. Мышь выполняет функцию пальцев, то есть страницы нужно оттягивать, чтобы они перелистывались, книги двигать.
[править]
Цель
- Цель проекта - написание кабинета для чтения литературы, приближенного к естественной для человека форме.
[править]
Причины
- 1) География книги. Книга обладает определенной толщиной, слова и абзацы в ней четко фиксированы внутри страницы, каждая страница легко укладывается в голове. Человек затем может довольно легко найти ранее прочитанное место в книге просто по образу страницы, пролистнув нужный объем страниц одним движением.
- При чтении размеченного документа на компьютере, человек читает как бы ленту, в которой трудно ориентироваться. А в гипертекстовых документах расположение слов и абзацев плавает в зависимости от ширины окна. Кроме того отсутствует ощущение толщины книги и прочитанного, которое не дает полоса прокрутки; даже в программах с жесткой разбивкой на страницы, вроде PDF-ридеров страницы как бы существуют независимо друг от друга и по сути представляют собой ту же ленту.
- Решение: книга в PL сходна с обычной книгой. Она является трехмерным объектом, обладающей толщиной и четкой географией со свободным перемещением по ней с возможностью взять сразу несколько страниц.
- 2) Образ книги. У книги есть внешний вид, цвет, толщина, полиграфия и фактура, которые могут говорить о ее содержании. У книги есть определенное место на полке или на столе, в том числе и среди других книг, благодаря чему ее легко найти и воспринимать.
- Текстовые файлы обладают только названием и иконкой, которая как правило ни о чем не говорит, в списке файлов у них нет определенного места, обычно это место определяется либо по алфавиту, либо по типу, размеру файла.
- Решение: книга в PL обладает всеми перечисленными качествами обычной книги, а также занимает свое место на полке или в стопке на столе.
- Прочие недостатки не являются столь существенными, однако имеют место быть:
- - возможность делать заметки на полях без нарушения структуры текста
- Решение: возможность рисовать «карандашом» поверх страниц, делая нужные заметки.
- - в закладках электронных книг трудно ориентироваться, поскольку они состоят только из названия и с ними не связан никакой образ
- Решение: возможность создавать закладки разного вида с разным текстом и располагать их так, чтобы были видны нужные из них.
- - отсутствие рабочего пространства как такового. Книга как бы висит в воздухе и ни к чему не привязана.
- Решение: существование тематического кабинета со своей характерной атмосферой, в котором можно поместить столы, полки и прочие объекты, где книги являются инструментами. Например, для чтения художественной литературы может подойти уютная комната в спокойных тонах, а для чтения технической литературы это может быть строгая комната с объектами для работы над рассматриваемой задачей.
[править]
Процесс
- 2D модель перелистывания книги (53Кб)
- Перемещении мыши по оси x в пределах окна перелистывает страницы. Перемещение при зажатой левой кнопкой мыши меняет место, где взяты страницы. Перемещение при зажатой правой кнопкой мыши меняет толщину листаемых страниц.
- 3D модель книжной полки (967Кб)
- Нажатие на книгу, стоящую на полке убирает книгу. Удерживание правой кнопки мыши перемещает книгу влево и вправо. Нажатие на заднюю стенку полки создает книгу. ESC переключает режим обзора/действия.
- Решено не пользоваться библиотекой Coin3D, а написать свою под чистый OpenGL. Причины в том, что Coin представляет двойной уровень абстракции (помимо методов и элементов класса, нужно думать о полях), что вызывает трудности при проектировании объектов и доступе к их элементам. Кроме того, исследование исходного кода Coin тоже оказалось малоприятным. Везде стоят "FIXME" и часто нет проверок на успех, например, освобождения памяти. Кроме того, против говорит также и некоторая громоздкость Coin, хотя изучение этой библиотеки оказалось интересным и полезным.
[править]
Исследование
- Сейчас библиотека находится в стадии исследования. Главные вопросы - как удобно организовать мир и взаимодействие с объектами мышью.
--alisid 14:12, 11 июля 2006 (MSD)
[править]
Инструменты
- Общее описание Open Inventor
- Об OpenGL Optimizer
- The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor, Release 2
- Если я правильно понял, проект Open Inventor был приостановлен в 2003 году и был рассчитан на Linux-подобные системы. Зато есть проект Coin3D, продолжение Open Inventor, который работает и под Win32.
- Вот еще одна 3d библиотека высокого уровня.
--alisid 13:38, 15 июня 2006 (MSD)
