com実験 - keio university
TRANSCRIPT
1
COM実験
Mathematicaの基本– 計算:数値計算と記号計算– グラフィックス
LiveGraphics3D– Mathematicaで作成したグラフィックスをJavaアプレットに変換する
– 回転できる3次元グラフィックス課題: 不可能図形– 2次元に書かれた、3次元では存在しえない立体– これを3次元立体で作る– トリック: 視点
Mathematica数値計算と記号計算ができるソフト
2
Mathematica
グラフィックスも充実
LiveGraphics3D
例
3
不可能図形
3次元的に存在しえない2次元図形Escher が巧みに描く
不可能図形
http://members.tripod.com/~modularity/impos.htmhttp://www.ritsumei.ac.jp/~akitaoka/fukano.html
4
LiveGraphics3Dによる不可能図形
例
簡単な不可能図形
Mathmatica による作成例
5
レポート課題
不可能図形を作成しなさい– 但し、3次元立体としては実際に存在する形でなければならない
– 次のスライドに候補を示す
作成手順1. Mathematicaで不可能図形を作成2. LiveGraphic3D に変換3. HTML で表示
課題の不可能図形
図1 スウェーデンの郵便切手Oscar Reutersvärd の絵画に基づく
図1に示す不可能図形を作成せよ(3個とも)。但し、右図にある横板は厚さ0としてよい。また、図形の表面に線が入っても、また形や色が変わっても、本質を変えなければよい.
(a) (b) (c)
http://www.u.arizona.edu/~akasymov/reutersvard.html
6
LiveGraphics3Dによる不可能図形(もう一つ)
Penrose Triangle
http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/examples/ambiguities.html
不可能図形の作成
Mathematicaで作図
Mathematicaでの作業①
7
LiveGraphic3D に変換①
LiveForm[graphics_, animOpts___] := Module[{graphics3d = Switch[graphics, _ContourGraphics, Graphics3D[SurfaceGraphics[graphics]], _DensityGraphics, Graphics3D[SurfaceGraphics[graphics]], _SurfaceGraphics, Graphics3D[graphics], _, graphics]}, Switch[graphics3d, _List, HoldForm[ShowAnimation][NumberForm[InputForm[N[graphics3d]], 5],InputForm[N[Flatten[{animOpts}]]]], _, NumberForm[InputForm[N[graphics3d]], 5]]];
WriteLiveForm[filename_, graphics_, animOpts___] := Module[{ps,x}, ps=Unprotect[Real]; Format[x_Real, InputForm] := OutputForm[NumberForm[x, 5, NumberFormat -> (If[#3 == "", #1, SequenceForm[#1, "*^", #3]] &)]]; Protect@@ps; WriteString[filename, ToString[LiveForm[graphics, animOpts], CharacterEncoding->None]]; Close[filename]; ps=Unprotect[Real]; Format[x_Real, InputForm] =.; Protect@@ps;];
LiveFormの記述
WriteLiveFormの記述
Mathematicaでの作業②
LiveGraphic3D に変換②
ファイルへの保存
SetDirectory["ファイルを書き込みたいフォルダ名"]
WriteLiveForm["ファイル名" , 式の名前 ]
ディレクトリの設定
ファイル名は「学科の通し番号の下3桁.m」とすること
保存先は live.jar のあるフォルダとする
Mathematicaでの作業③
8
HTMLでの表示①
<html><applet ARCHIVE="live.jar" CODE="Live.class" WIDTH=600 HEIGHT=600 ALIGN=LEFT><param NAME=BGCOLOR VALUE=#FFFFFF><param NAME=MAGNIFICATION VALUE=1.><param NAME=INPUT_FILE VALUE="filename.m"></applet></html>
サンプルのHTMLファイル
保存したLiveGraphic3Dのファイル名を記述
HTMLファイル名は「学科の通し番号の下3桁.html」とすること
HTMLでの表示②
Java Applet の表示可能なブラウザーで閲覧や操作
9
レポートの提出方法①
提出期限– 11月17日(水)までに電子メールにて提出
提出方法
– 電子メール– 宛先 [email protected]– タイトル 学科の通し番号下3桁
レポートの提出方法②
提出内容①
– メールに二つのファイルを添付する– LiveGraphic3Dファイル(拡張子「.m」)– HTMLファイル(拡張子「.html」)
ファイル名はいずれも学科の通し番号下3桁
10
レポートの提出方法③
提出内容②– HTMLのファイル中に以下のことを記述する
1. 課題の内容– どのような問題に取り組んだのか
– 実現方法– どのように実現したのか
2. 工夫した点– 自分で特に工夫した点
3. 感想
レポートを提出する際の注意
HTMLのファイルの中にレポート内容を書いて下さい– 作成した図形と本文を分けずに書いて下さい
必ずファイルが添付されていることを確認して下さい– 間違ったファイルを送らないこと– ファイルが添付されていない場合,採点できません
決して他人・仲間のレポートを写さないで下さい