VRML2を用いた3次元図形の構築
 VRML(Virtual Reality Modeling Language)とは,インタラクティブな3次元的世界を記述するためのファイル形式で,Webブラウザで仮想現実的な世界が表現できます。'96年8月に仕様が確定したVRML2はプラグイン・アプリケーションとして多くのブラウザ上で動作するようになりました。

VRML ブラウザ ソフト名 提供先
1.02.0NSIE
CosmoPlayerCosmo Software
--Live3DNetscape Navigator3.0付属
WorldViewIntervista Software
-4.0VRML 2.0 ビューアMicrosoft

 VRMLコードは,APIを使用せず構造化されたノードを使います。このノードで3次元図形を作成さえすれば,マウスで移動・回転させたり,視点の変更,イベントの発生など,さまざまな機能を発揮させることができます。なにより,テキストベースで作成(ファイルの拡張子をwrlで保存)するだけで,すぐに表示できて移動できるところが手軽で使いやすいといえます。

 VRML1,VRML2のそれぞれの特徴と使用例は次のページをご覧ください。

 それでは簡単な図形を作成して,VRML 2.0 ビューアで作成した物体を動かして見ましょう。


#VRML V2.0 utf8

Shape {

  appearance Appearance {

    material Material { diffuseColor 0.8 0.8 1 }

  }

  geometry Cylinder {

    radius 2

    height 3

  }

}


#VRML V2.0 utf8

Transform {

  scale		4 3 2

  translation	0 2 0

  rotation	1 1 0.5 1.5

  children [

    Shape {

      appearance Appearance {

        material Material { diffuseColor 1 1 0 }

      }

      geometry Box {size 3 2 1}

    }

  ]

}


#VRML V2.0 utf8

Shape {

  appearance Appearance {

    material Material {

      ambientIntensity	0.2

      diffuseColor	1 0.7 0.7

      emissiveColor	1 0 0

      shininess	0.7

      specularColor	0.5 0.5 0.5

      transparency	0.2

    }

  }

  geometry Cone {

    bottomRadius 2

    height 4

  }

}

 VRML2になってルート制御機能が設定できるようになりました。これによりVRML1ではできなかった個々のオブジェクトの移動・回転ができます。この機能を使って円錐を平面で切断することによってできる,切り口の図形を観察してみましょう。

 円錐にマウスを近づけるとマウスがの形になります。これはセンサーが働いていることを表わしています。そしてその状態ででマウスを右ドラッグすると,円錐だけを移動させることができます。同様に平面上でセンサーを働かせ右ドラッグすると,今度は平面が回転するようになります。それ以外の場所で右マウスドラッグすると,全体のオブジェクトに移動や回転をさせることができます。こうした操作を組み合わせることにより,いろいろな角度からの切断面を見ることができるのです。

 このようにVRML2ではよりinteractiveな操作を可能にし,数学的な題材のイメージ化に大きな可能性をもたらしたといえます。


#VRML V2.0 utf8



Group {

  children [

    DEF Fig Transform {

      children Shape {

        appearance Appearance {

          material Material { diffuseColor 0 1 0 }

        }

        geometry Cone { }

      }

    },

    DEF Trans PlaneSensor { }

    #DEF Trans SphereSensor { }

  ]

}



Group {

  children [

    DEF CutPlane Transform {

      children Shape {

        appearance Appearance {

          material Material { diffuseColor 1 1 1 }

        }

        geometry Box { size 3 0.05 3 }

      }

    },

    DEF Rot SphereSensor { }

    #DEF Rot PlaneSensor { }

  ]

}



ROUTE Trans.translation_changed TO Fig.set_translation

ROUTE Rot.rotation_changed TO CutPlane.set_rotation



#ROUTE Rot.translation_changed TO CutPlane.set_translation

#ROUTE Trans.rotation_changed TO Fig.set_rotation

→ VRML BROWSE は ここをクリックしてください。