MathematicaからVRMLへの変換
 これまで3次元図形を構成する2つのソフトMathematicaとVRMLの2つについて見てきました。今度はMathematicaで作成した図形をVRMLやJava Appletに変換して見ましょう。

 まずはVRMLです。これはパッケージVRMLConvert.mに入っている関数VRMLConvert[]を用いることによって実現できます。このパッケージはフォルダStandardPackagesに置いて使用することができます。また,変換されるVRMLはVRML1の方になっています。

 なお,これらのパッケージはH. Edward Donley氏が提供するもので,次のURLからダウンロードすることができます。
  「VRMLConvert Documentation」(H. Edward Donley )
  http://www.ma.iup.edu/MathDept/Projects/VRMLConvert/

 それではパッケージVRMLConvert.mに入っている関数VRMLConvert[]を用いて,Mathematicaで作成した図形をVRMLに変換して見ましょう。まずパッケージををロードします。


Remove["Global`*"]

Needs["VRMLConvert`"]

 いくつかの3次元図形をもとにVRMLへコンバートしてみましょう。立体図形にあたる光の強さや方向などの指定が必要になりますが,ごく簡単なものにとどめました。

g=ParametricPlot3D [ { v Cos [u] Sin [v] ,

  v Sin [u] Sin [v] , v Cos [v] } ,

  { u , 0.5 Pi , 2.5 Pi } ,

  { v , 0 , Pi },

   ViewPoint -> {2,2,0} ] ;

VRMLConvert[g,  "apple.wrl"  ]


g=	

  ParametricPlot3D

   [ { ( 2 + 0.5 Cos [u] ) Cos [v] ,

   ( 2 + 0.5 Cos [u] ) 

   Sin [v] , 0.5 Sin [u] } ,

   { u , 0.5 Pi , 2.5 Pi } ,

   { v , 0 , 2 Pi } ] 

VRMLConvert[g, "torus.wrl",

  SurfaceMaterial -> 

SurfaceColor

  [RGBColor[0.5, 0.5, 0.0]]]


g=

  ParametricPlot3D

   [ { t , u , Sin [t u] } ,

   { t , -3 , 3 } ,

   { u , -3 , 3 } ] 

VRMLConvert[g, "triangle.wrl",

  SurfaceMaterial -> 

  SurfaceColor

    [RGBColor[0.5, 0.5, 0.0]]]


f[x_ ,y_] := 

  (x^2 + 3 y^2) Exp[1-x^2-y^2] 

g=

  Plot3D

   [f[x ,y] ,

   { x ,-2 ,2 },{ y ,-2.5 ,2.5 }] 

VRMLConvert[g, "twin.wrl",

  SurfaceMaterial -> 

    {SurfaceColor[RGBColor[1,1,0]],

  SurfaceColor[RGBColor[1,0,0]]},

  PointStyle -> Sphere,

  SphereSize -> 0.05,

  LightSources ->

    {{{ 1, 0, 1}, RGBColor[1,0,0]},

    {{ 1, 1, 1}, RGBColor[0,1,0]},

    {{ 0, 1, 1}, RGBColor[0,0,1]},

    {{ -1,-1, -1}, RGBColor[1,1,1]}

} ]

 ここで用いたMathematicaのNotebookは,次のところをクリックするとダウンロードできます。
     → convert.nb (6kb)