Читаем Фреймы для представления знаний полностью

"Умственные способности, необходимые для координации перспективных изображений, оказываются полностью сформированными у ребенка обычно к 8-9 годам и проявляются в следующих довольно независимых друг от друга формах. Во-первых, каждому положению наблюдателя соответствует определенная совокупность отношений между видимыми предметами, например, отношения "слева - справа" или "спереди - сзади"... Они зависят от проекций и сечений, соответствующих плоскости изображения для данного наблюдателя (т. е. от перспективы). Во время этого последнего подэтапа шаг за шагом выявляется характер соответствия между точкой наблюдения и перспективой. Во-вторых, между каждой перспективой, связанной с данным положением наблюдателя, и любыми другими перспективами также существует соответствие, выражаемое особыми изменениями в отношениях типа "слева-справа", "спереди-сзади" и, следовательно, изменениями соответствующих проекций и сечений. Это соответствие между всеми возможными точками наблюдений обусловливает координацию перспектив... хотя еще только в элементарной форме".

Ж. Пиаже, Б. Инельдер (1956)

Когда мы двигаемся по комнате, очертания находящихся в ней предметов изменяются. Каким образом можно предвидеть или компенсировать эти изменения без полного повторного анализа всей сцены? Эффект от движения глаз и поворота головы довольно прост; предметы перемещаются в рамках видимой области пространства, но не меняют при этом своих очертаний; однако изменение позиции наблюдения является причиной значительных перемен, которые зависят как от угла, так и от относительных расстояний между предметом и наблюдателем. Эта проблема особенно важна для животных, двигающихся с большой скоростью, так как у них модель внешней среды должна быть образована различными, частично проанализированными видами изображений. Видимо, эта потребность, пусть даже в самом примитивном своём варианте, послужила главным стимулом к эволюционному развитию систем фреймов, а позже и других символьных механизмов.

Если имеется обычная комната, то перемещение вдоль пунктирной линии (рис.1.6) вызывает упорядоченное изменение в очертаниях четырехугольных стен. Прямоугольник, находящийся в непосредственной близости от стены, должен трансформироваться точно так же, как и сама стена. Если на левой стене в центре вычертить прямоугольник, то будет казаться, что он находится перед стеной, поскольку человек предполагает, что любой такой четырехугольник есть на самом деле прямоугольник и, следовательно, он должен лежать в плоскости, проектируемой аналогичным образом. На рис.1.7а оба прямоугольника, казалось бы, выглядят одинаково, однако тот прямоугольник, что находится справа, не согласуется с маркерами терминала для субфрейма "левый прямоугольник" (которые, например, требуют, чтобы левая сторона была длиннее правой).

Таким образом, этот прямоугольник, представленный с помощью фрейма "центральный прямоугольник", кажется нам выдвинутым вперед и параллельным центральной стене.

Итак, необходимо не просто присвоить четырехугольнику метку "прямоугольный", но и сделать то же самое для определенного фрейма, входящего в систему фреймов "прямоугольники". Двигаясь по стрелке (рис.1.7а), можно ожидать, что любая трансформация, применимая к системе верхнего уровня, будет применима и к любой из ее подсистем (рис.1.7б). Аналогично последовательность эллиптических проекций окружности на плоскость изображения содержит конгруэнтные и потому визуально неоднозначные пары, что и показано на рис.1.8. Но, поскольку предметы обычно располагаются в плоскости стен, мы предполагаем, что эллипс левой стены будет находиться слева на плоскости изображения, и что он подвержен тем же трансформациям, что и сама стена. Если предсказание не подтвердится, мы, очевидно, будем весьма удивлены.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT