「空間図形における３次元ソフトの利用について」
愛媛県立松山西中等教育学校
１

はじめに髙田修和（２） VRML

３次元空間における図形感覚は、かなり難しいものがあ

VRML(Virtual Reality Modeling Language)とは、る。現在は小学校・中学校で、「空間図形の展開と切断」、HTMLの３次元版であり、インターネット上でサイバ「空間図形における直線・平面の位置関係」、「空間図形のースペースを構築するためのシーン記述言語である。

表面積・体積」を学習している。これらの内容は生徒にとVRMLのイメージは、まず一つの風景（シーン）がっては興味深く学習できる反面、理解できにくい生徒が多あり、その中に幾つものオブジェクト（ノード）がい傾向にある。

配置される。

高校では数学Ｂの「空間ベクトル」において、空間的な他のプログラミング言語のようにコンパイルされ、イメージが必要になる。上記の理由等により、高校におい実行されるわけではない。VRMLファイルはコンピュても、３次元空間の基本問題を理解することが難しい生徒

ータに理解可能なオブジェクトの集合（パーズ）にが多い。そこで、空間図形の学習において、視覚的により変換され画面上に表示される。コンピュータグラフ効果のあるソフトについて研究することにした。

ィックスに向いており、豊富なモデルを容易に生成することが可能で、組み込み機能を多く備えている。

２

研究概要（１） Mathematica
Mathematicaとは、Wolfram Reserchが提供する数何よりテキストベースで作成し、読みとり可能なブラウザがあれば、すぐに表示できるところが一番の利点である。

学に関するソフトで、誰しもがその価値を認める。
特に、３次元グラフィックスではその機能をフルに（ア）作成例（基本幾何図形の作成）発揮する。

VRMLで基本幾何図形を形成するときはShapeノードを用いる。

（ア）作成例（正多面体の描画）
正多面体を描画するにはパッケージGraphics`PolyShape {hedra`に含まれる関数を用いる。
Needs["Graphics`Polyhedra`"];geometry NULL

← 外観ノードの指定

appearance NULL

← 幾何ノードの指定}

・Polyhedron[ 多面体 ]・Polyhedron[ 多面体 , { x , y , z } , r ]←r倍に拡大･縮小，中心{x,y,z}ア

正六面体（Show[Polyhedron[Tetrahedron]]）ア

直方体の描画

Box

geometry Box {size 2 2 2｝ ← 幅、高さ、奥行き（イ）作成例（点、線、面の作成）
任意の点集合や折れ線、多角形、多面体を作成するときはCoordinateノードを用いて、まず点集合を定義する必要がある。点座標の定義はpointフィールドを用いる。
coord Coordinate {point [イ正六面体（Show[Polyhedron[Cube]]）← 点座標の指定

x0 y0 z0

← 頂点番号0x1 y1 z1← 頂点番号1……
]｝ア

任意の面の描画

IndexedFaceSet

geometry IndexedFaceSet {coord NULL

← 点集合

color NULL

← 色リストcoordIndex []← 描画点の指定

colorIndex []← 面の割り当て色順

colorPerVertex TRUE

← 点・面色割り当て}（イ）作成例（直方体の切断面）
Mathematicaで作成し、LiveForm関数で変換する。
任意の図形の切断面を作成する関数knife[]を用いる。
Get["quadrics`"]
LiveForm [g_] := NumberForm[InputForm[N[g]], 4];（３） Live Graphics3D
Live Graphics3Dとは、Mathematicaで作成した3D

cube=Graphics３Ｄ[Cube[]];gr=knife[cube,{1,1,1,0},{0,0,0},{.3,.3,.3}];

図形を、Web上で表示するためのJava Appletである。

Show[gr]

Mathematicaは静的なものであるが、このソフトは動LiveForm [gr]的なものであり、より３次元の世界を身近なものに導いてくれる。

これをLiveGraphics3Dのこのclassを用いることで、Java Appletの知識をAppletタグにおけるINPUT持たなくても、引数を指定するだけでAppletを実行

パラメータのVALUEに用いさせることができる。VRMLよりもLive Graphics3Dのると次の様になる。

方が操作が簡単な上、光立体図形にあたる光の強さや方向などの指定をしなくてもMathematicaの図形を（ウ）特徴忠実に実現することができる。

・回転、ズームイン・アウト、焦点距離の変更、部

Webページ上でLive Graphic3Dを使用するには、次品除去、ステレオ画像作成が可能であり、Web上ではの５つのApplet Classをインストールすることが必

マウスを操作するだけである。

要である。これらのclassを使用するHTMLファイルと・自分の作った面が間違っている場合に、どこが間同じフォルダに置いて使用する。

違っているかの確認には部品除去が有効である。
また、平面間の位置関係などもイメージできる。

１

Live.class

２

Graphics3D.class

３

Parser.class

４

Primitive3D.class

５

Quaternion.class（４） POV-RayPOV-Ray（Persistance of Vision Ray Tracer）とは、リアルな３次元グラフィックスを作り出すためのソフトである。３次元図形をレイトレーシング法によって、光の影や透明感などを演出する。

（ア）作成例（直方体）

標準インクルードファイルで、リアル感を持たせLiveGraphics3DのAppletを用いてHTMLファイルにるための様々な素材が数多く用意されており、シー埋め込むためには、Appletタグを用いる。
<APPLET CODE="Live.class" WIDTH=200 HEIGHT=200><PARAM NAME=BGCOLOR VALUE=#FFFF80>

ンファイルの記述が簡単に作成することができる。
（ア）作成例（インクルードファイル）
これを拡大･縮小、回転、平行移動して配置していく。

<PARAM NAME=INPUT VALUE="Graphics3D[{#include "shapes2.inc" ← 形状に関するインクルー

Polygon[{{0,0,0},{0,0,1},{0,2,1},{0,2,0}}],

ドファイル

Polygon[{{3,0,0},{0,0,0},{0,2,0},{3,2,0}}],
Polygon[{{3,0,0},{3,0,1},{0,0,1},{0,0,0}}],・・・
object {Polygon[{{3,0,0},{3,0,1},{3,2,1},{3,2,0}}],形状の名前

Polygon[{{3,0,1},{0,0,1},{0,2,1},{3,2,1}}],

texture {Polygon[{{3,2,0},{3,2,1},{0,2,1},{0,2,0}}]}]"></APPLET>
これで作成されたHTMLファイルをブラウザで見ると次の様になる。

← カメラ、背景等の設定← オブジェクトの設定
・・・} ← テクスチャ指定

UnitBox(Cube)

Pyramid}（５） MathGL3D

３

今後の課題

MathGL3D(OpenGL Viewer for Mathematica)とは、Mathematica、VRML、POV-Ray、MathGL3Dは静的なもの

Mathematicaで作成した３次元図形をインタラクティであり、LiveGraphics3DとFunction Viewはで動的なもブに再現するViewerを作るMathematicaのパッケージのである。実際に、回転や拡大・縮小などを実感させるである。また、このパッケージを用いることにより、場合には後者を、３次元グラフィックスの鮮やかさを実Mathematicaで作成された画像を様々なタイプの画像感させる場合には前者が向いているようである。いずれ（POV-Ray、VRML）に変換可能である。にせよ、視覚的な効果もさることながら、空間図形に興味・関心を持つことが一番である。

（ア）Mathematicaへの画像の貼り付け
GL Viewerの画像をもう一度Mathematicaへ貼り付ける事も可能であり、そのためにはMVPasteGraphics

３次元ソフトの使用においては、３次元感覚とグラフィックスのどちらがメインになるかに注意し、最終的には、３次元感覚とならなければならない。

を用いる。
（イ）作成例（立体の切断）
Get["Graphics`Polyhedra`"]Get["Graphics`Shapes`"]

参考
１

相関図

Get["knife`"]

３次元図形

cube=Graphics3D[Cube[]];Mathematica

Web 上でVRML

gr=knife[cube,{1,1,1,0},{0,0,0},{.3,.3,.3}];

表示Live Graphics3D

MVClear [] ;POV-Ray

MVShow3D [ gr]

変換

３次元図形

可能
変換
可能

２

Viewerを作るMathematicaのパッケージ

MathGL3D

リンク先一覧

（１） Mathematica（６） Function View
Function Viewとは、すべてマウスの操作により、「3DGraphics In Mathematica」(M.Sanaee)
http://www.nikonet.or.jp/spring/sanae/3D_Math/3D_Math.htm

図形の表示が可能なソフトである。点のドラッグに（２） VRML

対応、入力・訂正パネルによる簡単なインターフェ「VRML2.0 TUTORIAL」(M.Sanaee)ースを実現している。多数の補助プログラムも準備

http://www.nikonet.or.jp/spring/sanae/VRML2/Vrml2.htm

されている。また、３Ｄでは陽関数、図形、媒介変（３） Live Graphics3D

数曲線も表示でき、様々な空間の図形の表示が可能「LiveGraphics3D Homepage」(Martin Kraus)である。画像の連続保存により、アニメーションのhttp://theorie3.physik.uni-erlangen.de/~mkraus/Live.html作成も支援している。背景に写真等を張り付けて、（４） POV-Rayグラフと重ねて表示もできる。Basic準拠のマクロ機「POV-Ray Homepage」(Martin Kraus)

能搭載により自動実行が可能である。

http://www.povray.org/（５） MathGL3D（ア）作成例（立方体の断面）「OpenGL Viewer for Mathematica」(Jene-Peer Kuska)
http://www.mpae.gwdg.de/~kuska/mview3d.html（６） Function View
「fv555a.exe」
http://hp.vector.co.jp/authors/VA017172/