com実験 - keio university

10
1 COM実験 Mathematica の基本 計算:数値計算と記号計算 グラフィックス LiveGraphics3D Mathematica で作成したグラフィックスをJavaアプレッ トに変換する 回転できる3次元グラフィックス 課題: 不可能図形 2次元に書かれた、3次元では存在しえない立体 これを3次元立体で作る トリック: 視点 Mathematica 数値計算と記号計算ができるソフト

Upload: others

Post on 01-Aug-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COM実験 - Keio University

1

COM実験

Mathematicaの基本– 計算:数値計算と記号計算– グラフィックス

LiveGraphics3D– Mathematicaで作成したグラフィックスをJavaアプレットに変換する

– 回転できる3次元グラフィックス課題: 不可能図形– 2次元に書かれた、3次元では存在しえない立体– これを3次元立体で作る– トリック: 視点

Mathematica数値計算と記号計算ができるソフト

Page 2: COM実験 - Keio University

2

Mathematica

グラフィックスも充実

LiveGraphics3D

Page 3: COM実験 - Keio University

3

不可能図形

3次元的に存在しえない2次元図形Escher が巧みに描く

不可能図形

http://members.tripod.com/~modularity/impos.htmhttp://www.ritsumei.ac.jp/~akitaoka/fukano.html

Page 4: COM実験 - Keio University

4

LiveGraphics3Dによる不可能図形

簡単な不可能図形

Mathmatica による作成例

Page 5: COM実験 - Keio University

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

Page 6: COM実験 - Keio University

6

LiveGraphics3Dによる不可能図形(もう一つ)

Penrose Triangle

http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/examples/ambiguities.html

不可能図形の作成

Mathematicaで作図

Mathematicaでの作業①

Page 7: COM実験 - Keio University

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での作業③

Page 8: COM実験 - Keio University

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 の表示可能なブラウザーで閲覧や操作

Page 9: COM実験 - Keio University

9

レポートの提出方法①

提出期限– 11月17日(水)までに電子メールにて提出

提出方法

– 電子メール– 宛先 [email protected]– タイトル 学科の通し番号下3桁

レポートの提出方法②

提出内容①

– メールに二つのファイルを添付する– LiveGraphic3Dファイル(拡張子「.m」)– HTMLファイル(拡張子「.html」)

ファイル名はいずれも学科の通し番号下3桁

Page 10: COM実験 - Keio University

10

レポートの提出方法③

提出内容②– HTMLのファイル中に以下のことを記述する

1. 課題の内容– どのような問題に取り組んだのか

– 実現方法– どのように実現したのか

2. 工夫した点– 自分で特に工夫した点

3. 感想

レポートを提出する際の注意

HTMLのファイルの中にレポート内容を書いて下さい– 作成した図形と本文を分けずに書いて下さい

必ずファイルが添付されていることを確認して下さい– 間違ったファイルを送らないこと– ファイルが添付されていない場合,採点できません

決して他人・仲間のレポートを写さないで下さい