Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VRML

15K
22 февраля 2009 года
Vertecs
116 / / 21.06.2008
Помню, ещё в середине 90-ых в местной телепередаче "Компьютер Азия" показывали этот формат и как он выглядит внутри... Но, сколько я файлов этих блокнотом ни открывал, натыкался на бинарники. И гугл не помогал...
И только сегодня догадался, экспериментально, открыть wrl-файл архиватором! :)

Есть ли пример, на подобии заставки Виндовс "Летающие предметы" с кубом морфирующим в атом? и т.д.

Вот мой труд, на который ушло уймо времени из-за скудного количества информации в сети. Везде попадаются справочники от 40 до 400кб!!! В конце-концов наскрёб и получил результат!
Код:
#VRML V2.0 utf8
PROTO Planet [ field SFColor color .9 .8 .5 field SFFloat radius 1 field SFVec3f position 0 0 0 ] {
    Transform {
        translation IS position
        children Shape {
            appearance Appearance { material Material { diffuseColor IS color } }
            geometry Sphere { radius IS radius }
        }
    }
}
DEF Planet_0 Transform { translation 0 0 0 children Planet { } }
DEF Planet_1 Transform { translation 3 0 0 children Planet { color .9 .7 .3 radius .3 } }
DEF Planet_2 Transform { translation 1 2 0 children Planet { color .4 .7 .9 radius .4 } }
NavigationInfo { type "EXAMINE" }
DEF Sizer Script {
 eventIn SFTime startMoving
 eventOut SFVec3f scale
 field MFNode planet [ USE Planet_0 USE Planet_1 USE Planet_2 ]
 field MFVec3f pos [ 0 0 0, 1 0 0, 0 2 3 ]
 field MFVec3f dir [ 0 0 0, 0 0 0, 0 0 0 ]
 field MFFloat rad [ 100, 1, 5 ]
 url "java script:
function startMoving() {
var x,y,z, x1,y1,z1, x2,y2,z2;
 for(i = 0; i < pos.length; i ++) {
  s = planet; x2 = s.translation.x; y2 = s.translation.y; z2 = s.translation.z;
  for(j = 0; j < pos.length; j ++) {
   if(j != i) {
   m = planet[j]; x1 = m.translation.x; y1 = m.translation.y; z1 = m.translation.z;
   x = x2 - x1; y = y2 - y1; z = z2 - z1;
   d = Math.sqrt(x * x + y * y + z * z)*25*rad[j]+.1;
   dir[j].x += x / d; dir[j].y += y / d; dir[j].z += z / d;
   }
  }
 }
 for(i = 0; i < pos.length; i ++) {
  p = planet;
  p.translation.x += dir.x; p.translation.y += dir.y; p.translation.z += dir.z;
 }
}"
}
DEF Ticker TimeSensor {
  cycleInterval .5
  loop TRUE
  enabled TRUE
}
ROUTE Ticker.cycleTime TO Sizer.startMoving
Позже выложу кое-какие ссылки...
Спасибо за внимание!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог