PENGGUNAAN NODES DALAM ATURCARA

NODE AsciiText

Node ini mereka teks string "This is a cool demo world !" .Parameter spacing merujuk kepada ketinggian teks tersebut dan dalam kes ini ketinggiannya adalah 1 unit.Justification CENTER pula meletakkan kedudukan teks tersebut berada di tengah-tengah pada koordinat ( 0 , 0 , 0 ).Parameter width digunakan untuk menterhadkan kelebaran teks sekiranya perlu tetapi pada aturcara ini nilainya adalah 0 menunjukkan tiada had lebar diperlukan.Node Material digunakan untuk mengkhususkan permukaan pada bentuk yang dihasilkan.Manakala node Separator pula mengasingkan anak node dari yang lain .Node Separator termasuk lights , camera , coordinates , normal , binding dan sebagainya.

#VRML V1.0 ascii

 

Separator {

                Material {

                            ambientColor 0.2 0.2 0.2

                            diffuseColor 0.8 0.8 0.8

                            emissiveColor 0 0 0

                            shininess 0.2

                            transparency 0

                } # Material
 

                AsciiText {

                            string " This is a cool demo world ! "

                            spacing 1

                            justification CENTER

                            width 0

                } #AsciiText

} # Separator
 
 
 

NODE CONE

Node Translation mengkhususkan di mana ( dalam koordinat ) objek tersebut akan berada dalam scene.Node untuk Cone akan melukis bentuk kon dengan nilai radian 15 manakala tinggi 30.'Parts' merujuk kepada bahagian kon yang dilukis samada SIDES , BOTTOM atau ALL.Dalam aturcara ini , keseluruhan kon akan dilukis.Kon yang berbentuk 3D akan dihasilkan dengan kedudukan ditengah pada ( 0 , 30, 0 ) dan di atas teks dalam scene.

 

DEF Cone1 Separator {

                            Translation {

                                            translation 0 30 0

                             } # Translation

                            Cone {

                                            parts ALL

                                            bottomradius 15

                                            height 30

                            } # Cone

} # Cone1 Separator

 

 

NODE CUBE

Node Cube adalah objek berbentuk kotak segiempat sama atau kiub dengan lebar , tinggi dan panjang 30 unit.Kedudukan kiub ini berada ditengah (-45 , 30 , 0 ) yang dikhususkan dengan node Translation.Aturcara ini akan menyebabkan kiub keluar disebelah kiri kon.

 

DEF Cube1 Separator {

                    Translation {

                                    translation -45 30 0

                    } # Translation

                    Cube {

                                    width 30

                                    height 30

                                    depth 30

                    } # Cube

} # Cube1 Separator

 

NODE CYLINDER

Node Cylinder menghasilkan satu objek berbentuk silinder dengan ketinggian 30 unit dan radian 15 unit.Kedudukan silinder ditengah ialah ( 45 , 30 , 0 ) yang dikhususkan dengan node Translation.Aturcara ini menghasilkan keseluruhan bahagian silinder manakala parameter yang lain ialah TOP dimana akan menghasilkan permukaan atas silinder , BOTTOM menghasilkan permukaan dibawah dan SIDES pula menghasilkan sebelah permukaan silinder.Silinder yang dihasilkan akan berada di sebelah kanan kon.

 

DEF Cylinder1 Separator {

                    Translation {

                                translation 45 30 0

                    } # Translation

                     Cylinder {

                                parts ALL

                                radius 15

                                height 30

                      } # Cylinder

} # Cylinder1 Separator

 

 
NODE SPHERE

Node Sphere akan menghasilkan satu objek berbentuk sfera dengan kedudukan di atas kon ( 0 , 75 , 0 ) dengan ukuran 15 radian .

 

DEF Sphere1 Separator {

                Translation {

                            translation 0 75 0

                 } # Translation

                Sphere {

                              radius 15

                } # Sphere

} # Sphere1 Separator

 

 
NODE COORDINATE3 , INDEXEDFACESET DAN INDEXEDLINESET

Dalam aturcara ini ia akan menghasilkan 2 objek berbentuk permata (diomand ).Satu objek permata mempunyai permukaan manakala yang lagi satu tiada permukaan.Dalam FaceDiomand Separator ia mengandungi node Coordinate3 dan node IndexedFaceSet.Node Coordinate3 digunakan untuk mengkhususkan titik dalam scene.Node IndexedFaceSet menentukan koordinat yang mana sepatutnya dihubungkan untuk menghasilkan satu kerangka permata.Node IndexedLineSet akan menghubungkan titik -titik dengan garisan diantara bucu.Sementara menggunakan koordinat yang sama , kita menggunakan node Translation untuk menaikkan garisan permata kepada 75 unit daripada lokasi sebenarnya.

 

DEF FaceDiamond Separator {

                            DEF DiamondCoords Coordinate3 {

                            point [

                                        0 75 25, # 0

                                        12.5 62.5 12.5 , # 1

                                        12.5 62.5 37.5 , # 2

                                        -12.5 62.5 37.5 , # 3

                                        -12.5 62.5 12.5 , # 4

                                         0 50 25 , # 5

                                      ]

            } # DiamondCoords Cordinate3

        IndexedFaceSet {

                    coordIndex [

                                0, 1, 2, -1,

                                0, 1, 4, -1,

                                0, 4, 3, -1,

                                0, 3, 2, -1,

                                5, 1, 2, -1,

                                5, 1, 4, -1,

                                5, 4, 3, -1,

                                5, 3, 2, -1,

                                ]

          } # IndexedFaceset

} # FaceDiamond Separator

DEF LineDiamond Separator {

                        Translation {

                                        translation 0 75 0

        &nbs p;               } # Translation

                        USE DiamondCoords

                                IndexedLineSet {

                                        coordIndex [

                                                0, 1, -1,

                                                0, 2, -1,

                                                0, 3, -1,

                                                0, 4, -1,

                                                4, 1, -1,

                                                1, 2, -1,

                                                2, 3, -1,

                                                3, 4, -1,

                                                5, 1, -1,

                                                5, 2, -1,

                                                5, 3, -1,

                                                5, 4, -1,

                                            ]

                            } # IndexedLineSet

            } #DiamondLine Separator

 

 

NODE FONTSTYLE

Node ini membenarkan untuk menukar jenis teks yang telah ada dalam node AsciiText.Saiz tulisan/teks boleh dikhususkan , jenis tulisan ( SERIF , SANS dan TYPEWRITER ) dan cara tulisan tu dipersembahkan ( NONE , BOLD atau ITALIC ). Dalam aturcara ini , saiz tulisan ditambah kepada 15 dan jenis tulisan ditukar kepada TYPEWRITER.

 

#VRML V1.0 ascii

 

Separator {

            Material {

                            ambientColor 0.2 0.2 0.2

                            diffuseColor 0.8 0.8 0.8

                            emissiveColor 0 0 0

                            shininess 0.2

                            transparency 0

            } # Material

            FontStyle {

                            size 15

                            family TYPEWRITER

                            style NONE

            } # FontStyle

 
            AsciiText {

                           string " This is a cool demo world ! "

                            spacing 1

                            justification CENTER

                            width 0

            } #AsciiText

} # Separator
 
 
 

NODE MATERIAL , MATERIALBINDING DAN INFO

Node Material dan MaterialBinding membenarkan pengguna untuk mengkhususkan warna dan hasil bentuk objek dalam scene.Untuk mengkhususkan warna dalam VRML,ia menggunakan 3 nombor dalam setiap jujukan 0-1 iaitu merah , hijau dan biru (RGB).Node ini juga boleh digunakan untuk mengkhususkan bentuk yang bersinar dan lutsinar.Node MaterialBinding mengkhususkan bagaimana material digariskan untuk dibentuk dalam scene dan nilainya adalah salah satu daripada berikut (DEFAULT, OVERALL,PER_PART,PER_PART_INDEXED, PER_FACE , PER_FACE_INDEXED

,PER_VERTEX , PER_VERTEX_INDEXED )

 

# VRML V1.0 ascii

Separator {

                    Info {

                            string " This is a cool world!! "

                    } #Info

                    Material {

                            diffuseColor 1 0 1

                            shininess 0.2

                            transparency 0

                    } # Material

                    MaterialBinding {

                             value DEFAULT

                    } # MaterialBinding
 
 

NODE TEXTURE2

Node ini membaluti sekitar bentuk yang dihasilkan (fail .jpg atau .gif).Aturcara ini diliputi dengan tekstur papan (wood.jpg) disekeliling sfera.

 

DEF Sphere1 Separator {

                        Texture2 {

                                    filename "wood4.jpg"

                        }

                        Translation {

                                    translation 0 75 0

                        } # Translation

                        Sphere {

                                    radius 15

                        } # Sphere

} # Sphere1 Separator
 
 

 

NODE TRANSFORM

Node ini digunakan untuk memberi skala , posisi atau pusingan bentuk yang dihasilkan dalam scene.Katakunci lain yang digunakan dalam node ini termasuklah translation , scaleFactor dan center.ScaleFactor X Y Z membenarkan pengguna untuk mengubah saiz objek dalam apa jua arahan manakala center pula membenarkan pengguna untuk mengkhususkan pusingan yang akan digunakan.

 

DEF Cube1 Separator {

                Transform {

                            rotation 0 1 0 .7

                } # Transform

                Translation {

                            translation -45 30 0

                } # Translation

                Cube {

                            width 30

                            height 30

                            depth 30

                 } # Cube

} # Cube1 Separator

 

 

NODE PERSPECTIVECAMERA

Dengan menggunakan node ini kita boleh mengkhususkan lokasi kamera yang baru .Aturcara ini meletakkan pengguna di ( 0 , 30 , 240 ) ,dilihat dalam arah -z ( kedalam skrin ) dengan jarak tumpuan 5 dan ketinggian sudut .785 radian.

#VRML V1.0 ascii

Separator {

            PerspectiveCamera {

                        position 0 30 240

                        orientation 0 0 -1 0

                        focalDistance 5

                        heightAngle .785

            } # PerspectiveCamera

 

 

NODE SPOTLIGHT

Dengan menggunakan node ini kita boleh mereka sumber cahaya yang baru .Node ini mereka spot light pada half-intensity di lokasi ( 0, 0, 120).Warnanya juga boleh dikhususkan dimana dalam aturcara ini adalah berwarna putih.

 

#VRML V1.0 ascii

 
Separator {

            PerspectiveCamera {

                      &nb sp; position 0 30 240

                        orientation 0 0 -1 0

                        focalDistance 5

                        heightAngle .785

            } # PerspectiveCamera

            SpotLight {

                        on TRUE

                        intensity .5

                        color 1 1 1

                        location 0 0 120

                        direction 0 0 -1

            } # SpotLight

 

 

NODE WWW ANCHOR dan WWW INLINE

Node WWWAnchor membenarkan pengguna mencapai URL melalui salah satu objek.Apabila pengguna klik pada objek tersebut , ia akan disambungkan pada laman tersebut.Mengikut aturcara di bawah , medan nama adaalh alamat URL manakala map samada NONE atau POINT.Node WWWInline pula membenarkan pengguna menambah fail .wrl kedalam aturcara yang sedia ada.

Separator {

            Translation {

                        translation 0 15 -500

             } # Translation

            WWWInline {

                        name "1707d.wrl"

             } #WWWInline

} # Separator
 

WWWAnchor {

                name "http://www.planet9.com/worlds/vrsf.wrl"

                map NONE

                DEF Sphere1 Separator {

                            Texture2 {
 
                                    filename "wood4.jpg"

                            }

                            Translation {

                                     translation 0 75 0

                                } # Translation

                Sphere {

                                radius 15

                } # Sphere

        } # Sphere1 Separator

} # WWWAnchor