Logo    
Продукты, технологии Проекты, внедрения Новости мира IT Форумы Курилка Новые публикации Учебный центр
CitForum    CITForum на CD Море(!) аналитической информации! :: CITFORUM.RU   
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware HOWTO

23.05.2004

Google
WWW CITForum.ru

Новости мира IT:


21.05 - Колонка Айдара Богданова: информационная безопасность на президентском уровне
  • 21.05 - Путин подписал указ о создании нового Министерства информационных технологий и связи РФ во главе с Рейманом
  • 21.05 - Региональные GSM-операторы нашли способ конкурентной борьбы с гигантами рынка
  • 21.05 - Новая цифровая 5-ти мегапиксельная фотокамера для российских пользователей
  • 21.05 - Apple разделяется
  • 21.05 - Домашний ПК с экстремальными возможностями
  • 21.05 - Червь Lovegate научился отвечать на письма
  • 21.05 - Microsoft объявила об альянсе с Oracle
  • 21.05 - Компания «Никита» — лучший партнер ОАО «ВымпелКом».
  • 21.05 - Компания «Никита» — лучший партнер ОАО «ВымпелКом».
  • 21.05 - Panda Software предупреждает о появлении двух новых версий червя Bobax
  • 21.05 - Группа компаний «Формоза» открывает свой двухсотый магазин
  • 21.05 - IBS Поставила сервер IBM REGATA в Центральный Банк РФ
  • 21.05 - CSBI получает западные инвестиции
  • 21.05 - Коробочный Mandrakelinux - впервые в России
  • 21.05 - Wi-Fi инициатива IBM, Intel и AT&T провалилась
  • 21.05 - CTR в почте растет
  • 21.05 - Российский рынок ИТ: +20,3%
  • 21.05 - Краснодарский край уже год торгует в интернете
  • 21.05 - INTEL вдвое увеличит штат своих российских сотрудников, занимающихся исследованиями и разработками
  • 21.05 - Компания «Голден Лайн» подключила к корпоративной сети «Копейка» 50-й магазин
  • 20.05 - IBM открыла европейский центр вычислений на заказ
  • 20.05 - Google случайно увеличила емкость почтовых ящиков до терабайта
  • 20.05 - Путин подписал антихакерский указ
  • 20.05 - Подробности о процессоре VIA Esther
  • 20.05 - Google вынашивает тайные планы
  • 20.05 - Microsoft представил русскую версию Visual Basic .NET 2003
  • 20.05 - Учебный центр DIAMOND Communications становится авторизованным центром обучения Cisco Systems
  • 20.05 - Вимком на выставке «Связь-Экспокомм’2004»
  • 20.05 - Инлайн представляет кулер нового поколения
  • 20.05 - Впервые в России: уникальный программно-аппаратный комплекс от СТИНС КОМАН и «ФОРС- Центр разработки»
  • 19.05 - Вышла версия 5.0.6. системы контент-менеджмента OpenCMS, соответствующая международному стандарту WAI
  • 19.05 - Apple хочет запатентовать прозрачные окна
  • 19.05 - Очередной альтернативный офисный пакет
  • 19.05 - Новая версия Linux-дистрибутива Fedora
  • 19.05 - Троян Bobax превращает компьютер в прокси-сервер
  • 19.05 - Microsoft выпускает Office 2004 для Mac
  • 19.05 - Yahoo выпустил новый почтовый стандарт для борьбы со спамом
  • 19.05 - В Казахстане открылось представительство Intel
  • 19.05 - Cisco и IBM объединились на ниве IP-телефонии

    Архив новостей >>>


  • Примитивы и управление положением объектов (Transform)

    Итак, здесь начинается практическая часть изложения VRML. В качестве наглядного проекта начнем создание, к примеру, рабочего стола, на который постепенно набросаем всяких "предметов". Да и сам по себе стол постепенно оживет. При описании синтаксиса в качестве численных аргументов будут указаны значения, принятые по умолчанию.

    ВАЖНО! В спецификации есть замечательная фраза, касающаяся ВСЕХ примитивов:

    The Box (Cone, Shpere, Cylinder) geometry requires outside faces only. When viewed from the inside the results are undefined.

    Т.е. вид этих тел ИЗНУТРИ строго не оговорен и зависит от броузера. В большинстве случаев вида изнутри просто НЕТ, т.е. объекта как бы и вовсе нет.

    Box (паралеллепипед)

    Описание прямоугольного параллелепипеда выглядит предельно просто:

    Box       {size      2      2      2}
    

    По умолчанию центр тяжести помещается в 0,0,0.

    Таким образом код кубика 2x2x2 будет выглядеть так

    #VRML V2.0 utf8
    Shape          {geometry        Box     {}}
    

    Узел Shape указывает броузеру, что идет описание формы объекта. Можете посмотреть, что получилось

    Поскольку нам понадобится крышка для будущего стола, давайте изменим размеры. Прикиньте размеры стола, за которым сидите в метрах. Не забывайте про расположение осей.

    Просмотр. Текст кода.

    Теперь очередь за ножками стола. Здесь очень уместно объяснить использование узлов DEF/USE и PROTO

    Если Вы знаете хотя бы какой-нибудь язык программирования, то это очень легко понять. Вместо описания каждой из четырех одинаковых ножек стола отдельно, мы определяем ПЕРЕМЕННУЮ (DEF), а потом используем ее (USE).

    Однако если просто написать USE, то второй объект будет порожден в том же месте, что и исходный. Для управления положением объекта существует узел Transform. На примере с ножками стола легко увидеть, как использовать DEF/USE и Transform.

    Вот как они выглядят. Просмотр. Текст кода.

    Как видно из кода, исходная первая ножка была создана в точке с координатами 0,0,0, и ей была присвоена переменная с именем "nozhka". Оставшиеся три ножки были порождены смещением переменной "nozhka" вдоль осей X и Z.

    Теперь надо совместить ножки стола и его крышку. Имея отдельные файла с этими объектами, можно поступить двумя способами: либо в обычном текстовом редакторе вырезать из одного файла объект и вставить в другой, либо воспользоваться узлом Inline.

    Вариант 1.Просмотр. Текст кода.

    Вариант 2. Просмотр. Текст кода.

    Как видно из просмотра wrl файлов, результат абсолютно одинаков. Осталось только воспользоваться узлом Transform, чтобы правильно взаимно разместить крышку и ножки стола. Предлагаю двигать крышку:

    Просмотр. Текст кода.

    Sphere (сфера)

    Описание сфер выглядит так

    Sphere            {radius           1}
    

    По умолчанию центр сферы помещается в точку 0,0,0. Таким образом, если Вы будете указывать ТОЛЬКО узлы Sphere, то получите ВСЕ сферы с центрами в 0,0,0, как матрешки. Я надеюсь, уже ясно, что от этого нас спасет узел Transform.

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

    Просмотр. Текст кода.

    Из-за того, что не указан радиус сферы, она по умолчанию получилась радиусом 1 метр, этакий двухметровый глобус на столе :). Вместо указания радиуса, воспользуемся масштабированием, предусмотренным в узле Transorm.

    Просмотр. Текст кода.

    Пусть шарик пока повисит над столом, подставку сделаем из других примитивов.

    Cone (конус)

    Описание конуса:

    Cone {bottomRadius 1
    height 2
    side TRUE
    bottom             TRUE }
    

    По умолчанию центр его высоты цилиндра размещается в 0,0,0. Логическое утверждение TRUE/FALSE (ИСТИНА/ЛОЖЬ) для side и bottom определяет, будет ли создаваться сторона и донышко конуса. При side TRUE и bottom FALSE, Вы получите конус без донышка; при side FALSE и bottom TRUE, получите только донышко (удобно создавать диски, видимые, правда, только с одной стороны: напомню, что изнутри вид конуса не определен, см начало этой страницы); при side FALSE и bottom FALSE получите конус, невидимый и неощутимый при движении сквозь него, в общем это будет отсутствие конуса.

    Создадим коническую подставку для нашего глобуса и поместим ее не вертикально, а наклонно. Для этого воспользуемся еще одной возможностью для позиционирования в узле Transform - rotation (вращение).

    rotation описывается 4 числами: первые три задают направление оси вращения (например 1 0 0 - ось X, 0 1 0 - ось Y, 0 0 1 - ось Z, 1 1 0 - ось проходит по биссектриссе угла между осями X и Y), а последнее - величину угла вращения в радианах против часовой стрелки. Направление вращения можно менять, изменяя знак либо угла вращения, либо направления оси, скажем, можно задать ось не 0 0 1, а 0 0 -1.

    Просмотр. Текст кода.

    Cylinder (цилиндр)

    Описание цилиндра:

    Cylinder {bottom TRUE
    height 2
    radius 1
    side TRUE
    top            TRUE }
    

    По умолчанию центр высоты цилиндра размещается в 0,0,0.

    Логическое утверждение TRUE/FALSE (ИСТИНА/ЛОЖЬ) для side, bottom, top определяет, будет ли создаваться сторона, нижняя и верхняя крышки цилиндра.

    Создадим цилиндрическое основание для подставки глобуса.

    Просмотр. Текст кода.

    Назад | Содержание | Вперед

     

    Подписка на новости библиотеки:

    Новые поступления в on-line библиотеку:

    20 мая

  • Оперативная интеграция данных на основе XML: системная архитектура BizQuery
  • Математика криптологии
  • Использование USB Flash под Linux
  • Мониторинг материнских плат в Linux
  • Работа с последовательными портами
  • Три письма на Perl

    18 мая

  • Xabre 600: GPU с претензиями
  • Linux: укрощение мыши и монитора
  • Семь вещей, которые нужно знать о VMWare и VirtualPC
  • BlueJ: учебная оболочка или полноценная среда разработки?
  • Inferno - виртуальный пост-Unix в кармане
  • CVS - система управления версиями

    12 мая

  • Бесполезный Perl и общая теория улучшения мира
  • Как подружить Olympus c ПК?
  • Шесть правил ухода за монитором
  • Веб-сервер своими руками
  • Поддержка MS-макросов в DELPHI
  • Интеграция Tomcat с Apache. Развертывание веб-приложений Java2 на Linux-платформе
  • Экстремальное программирование: новые возможности

    29 апреля

  • Linux на работе и дома
  • Автоматическая установка Windows
  • Гостевая книга из Perl'овки
  • HTML Help ActiveX control: всплывающие окна
  • NQL: твои агенты в Сети

    27 апреля

  • Материалы конференции "Корпоративные базы данных-2004"
  • Практическая реализация DNS
  • Shell Extensions и как с ними бороться
  • BI для массового использования:
    Барьеры, которые нужно преодолеть:: Поиск наилучшего способа реализации:: Расчет окупаемости вложений в BI-проект
  • SOAP 1.2 и запрос GET

    22 апреля

  • Обзор XML-стандартов
  • Windows и Delphi на защите секретов
  • Один в поле не воин: межсетевые экраны и антивирусы - братья навеки!
  • Все будет Samba!
  • ISPMail-HOWTO v.2.0

    20 апреля

  • Семейство алгоритмов ARIES
  • Русификация OpenBSD

    19 апреля

  • Как правильно задавать вопросы
  • Сжатие данных в целях экономии места и ускорения работы
  • Концепции построения ERP-систем на предприятии

    15 апреля

  • XML-схема. Часть 0: пример (Рекомендации W3C)
  • Сжатие таблиц в СУБД Oracle9i release 2: анализ эффективности
  • Как правильно деинсталлировать СУБД Informix на платформе Windows
  • Как написать драйвер принтера в BeOS

    13 апреля

  • Наиболее интересные новшества в стандарте SQL:2003
  • Новый взгляд на ноутбуки
  • Статистическая информация уровня сегмента в событии 10046 Oracle 9.2
  • Сколько стоит update?
  • Формирование хранимых шаблонов в Oracle 9
  • Стабилизация плана оптимизатора в Oracle 8i/9i
  • Понимание индексов на основе битовых карт
  • Oracle_trace - лучшее встроенное средство диагностики?

    8 апреля

  • Анализ рынка средств защиты от копирования и взлома программных средств
  • Аутентификация и авторизация пользователей между Web-сервером и сервером приложения в .NET
  • Особенности в проектировании и практической разработке медицинской информационной системы
  • Настройка доменов контроля доступа в JBoss 3.х.х
  • Сборка сервера JBoss 3.x из исходного кода
  • Развертывание приложения с помощью Java Web Start

    6 апреля

  • FreeBSD 5.2. Первые впечатления
  • FreeBSD 5.2: файловая система устройств
  • Примеры использования IPF
  • Настройка Ethernet Bridge
  • Управление непрерывностью вашего бизнеса
  • Веб-сервисы как вариант основы информационной инфраструктуры предприятия

    5 апреля

  • Примеры использования IPF
  • Настройка Ethernet Bridge

    1 апреля

  • ORACLE и коммерческая GRID
  • Открытые программы в Linux и их платные конкуренты в Windows
  • Windows&Fonts
  • Правильный снос Windows

    30 марта

  • Учебный курс Основы операционной системы UNIX
  • Иерархия защиты веб-серверов
  • На перекрестке дорог (сравнение стандартов памяти DDR II и RDRAM)
  • IT-планирование: новые перспективы

    25 марта

  • Новый раздел - Операционная система BeOS

  • Учебник Основы конструирования компиляторов

    Обзоры журнала Computer:

  • Диета для компьютеров
  • Бедным тоже нужны электронные услуги

    Все новости >>>



  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware HOWTO

    Реклама на IT-портале citforum.ru

    Нестандартные PR-акции - pr@citforum.ru
    Пресс-релизы и информация в каталог компаний - manager@citforum.ru
    Комментарии: mailto:info@citforum.ru?Subject='From bottom of CIT FORUM' Rambler's Top100 TopList This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2004 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.