МУЛТИМЕДИЯ и ОСНОВИ НА WEB ДИЗАЙНА

УПРАЖНЕНИЕ 9 - задача 9.3

Промяна на позицията на обект постредством PositionInterpolator и TimeSensor

ТЕОРИЯ : Задачата включва познания за създаване на примитиви, анимиране чрез PositionInterpolator и TimeSensor. Описание на анимациите във VRML можете да намерите в ЛЕКЦИЯ 16 от курса на дисциплината МОWД.

ЗАДАЧА 9.3: Подскачаща топка(фиг.9.3.1)


Фиг.9.3.1 Подскачаща топка

За изпълнение на задачата първо свалете и разархивирайте папката с файлове към упражнението.

1. Създайте нов VRML файл и го наименувайте jumpingball.wrl.

2. Направете преливащ фон за небето непосредствено под заглавния ред.

3. Създайте група, в която ще поставим анимираната топка, земната повърхност и интерполатора за смяна на позицията.

     Group {
        children [

        ]
     }

3. Създайте Transform възел с име tr, която ще включва фигурата на топката, интерполатора за позиция и таймера.

4. В Transform възелa tr създайте примитив сфера с радиус 1 и обвивка balltexture.jpg, който да представя топката в сцената.

5. В Transform възелa tr създайте интерполатор за преместване с име pi, три ключа и преместване 1 по Y:

     DEF pi PositionInterpolator {
       key [ 0.0, 0.5, 1.0 ]
       keyValue [ 0 0 0, 0 1 0, 0 0 0]
     }

6. В Transform възелa tr създайте TimeSensor, упревляващ времето за представяне на анимацията с интервал 4 (cycleInterval 2) и еднократно изпълнение (loop TRUE). Наименувайте го ts.

8. В групата създайте още един Transform възел с преместване 0.98 по Y.

9. В новосъздадения Transform възел направете повърхност чрез IndexedFaceSet Node, лежаща в равнина Z с дължини на страните 12. Приложете и текстурата ground.jpg.

     Shape {
       appearance Appearance {
         texture ImageTexture { url "ground.jpg" }
       }
       geometry IndexedFaceSet {
         coord Coordinate {
           point [
             -6.0 0.0 6.0, 6.0 0.0 6.0,
             6.0 0.0 -6.0, -6.0 0.0 -6.0,
           ]
       }
         coordIndex [ 0, 1, 2, 3 ]
         texCoord TextureCoordinate {
           point [ 0.0 0.0, 2.0 0.0, 2.0 2.0, 0.0 2.0, ]
         }
         texCoordIndex [ 0, 1, 2, 3 ]
         solid FALSE
       }
     }

10. След групата задайте пътиша, които да представят анимацията.

     ROUTE ts.fraction_changed TO pi.set_fraction
     ROUTE pi.value_changed TO tr.set_translation

11. Съхранете направените промени и разгледайте 3D модела в браузъра.