turtle graphicsで遊ぼう!
DESCRIPTION
TurtleGraphicsで遊ぶためのバイブル。 LOCAL学生部 GWEvent 2014 にて使われたスライドです。TRANSCRIPT
Turtle Graphics で遊ぼう!
用意するもの
• Eclipse(総合開発環境)
自分でJavaソースコードを書く、コンパイル、実行まで出来る環境があればそれでもOK
• Turtleクラス
偉大なライブラリを作って頂いた先人に感謝
Eclipse• USBフラッシュメモリ内に保存
各自OSに対応したEclipseをコピーして下さい
Windows 32bit・64bit
Mac 32bit・64bit
Turtleクラス• USBフラッシュメモリに保存
各自Turtleフォルダごとコピー下さい
• GitHubから入手する
https://github.com/arienkakkowara/TurtleGraphics
上記のリポジトリをcloneして下さい
Turtleクラス• TurtleGraphicsとは?
TurtleGraphics(タートルグラフィックス)は子供にプログラミングを紹介するのによく使われます。TurtleGraphicsはWally FeurzigとSeymore Papertが1966年に開発したLogoプログラミング言語の一部でした。
引用:http://docs.python.jp/3.3/library/turtle.html
TurtleGraphicsで遊ぶ• TurtleFrameクラスの詳細
コンストラクタ
TurtleFrame() ウィンドウを 400☓400の大きさで生成
TurtleFrame(int width, int height)
ウィンドウを width☓heightの大きさで生成
メソッドvoid add(Turtle t) カメtをウィンドウに追加void remove (Turtle t) カメtをウィンドウから削除
void clear() 今までに書かれた線を全て削除void addMesh() 方眼紙のようなマス目を表示
TurtleGraphicsで遊ぶ• Turtleクラスの詳細(その1)
コンストラクタTurtle() (200, 200)の位置、0度の向きでカメ生成Turtle(int x, int y, int angle) (x, y)の位置、angle度の向きでカメ生成
メソッドvoid fd(int n) nだけカメを前に進めるvoid bk(int n) nだけカメを後に進めるvoid rt(int n) n度だけカメを右に回転するvoid lt(int n) n度だけカメを左に回転するvoid setColor(Color c) カメの色をcに変更する
TurtleGraphicsで遊ぶ• Turtleクラスの詳細(その2)
メソッド(続き)int moveTo(int x, int y)
(x, y)の方向を向き、(x, y)まで移動する 移動した距離を返す
int moveTo(Turtle t)
カメtの方向を向き、tと同じ位置まで移動 移動した距離を返す
int moveTo(int x, int y, int angle)
(x, y)の方向を向き、(x, y)まで移動、 angleの角度をむく 移動した距離を返す
int getX() 現在のx座標の値を返すint getY() 現在のy座標の値を返すint getAngle() 現在の向いている角度angleを返す
TurtleGraphicsで遊ぶ• Turtleクラスの詳細(その3)
メソッド(続き)void up() ペンを上げるvoid down() ペンを下げる(進んだ軌跡を線として描画)boolean isDown() ペンを上げる:false 下げる:trueを返す
フィールド
Color tcolor 初期値:緑色 カメの絵の色
double tscale 初期値:0.4 カメの大きさを表す
static boolean withAurtleAll
初期値:true true→通常の描画 false→瞬時に描画
TurtleGraphicsで遊ぶ• Turtleクラスの詳細(その3)
メソッド(続き)void up() ペンを上げるvoid down() ペンを下げる(進んだ軌跡を線として描画)boolean isDown() ペンを上げる:false 下げる:trueを返す
フィールド
Color tcolor 初期値:緑色 カメの絵の色
double tscale 初期値:0.4 カメの大きさを表す
static boolean withAurtleAll
初期値:true true→通常の描画 false→瞬時に描画
習うより
慣れろ!
TurtleGraphicsで遊ぶ• 基本的な流れ
①ウィンドウ生成 ↓
②カメ生成 ↓
③ウィンドウにカメ追加 ↓
④カメに命令
• サンプルコード class Test { pubic static void main(String[] args) { TurtleFrame f = new TurtleFrame(700, 500); Turtle t = new Turtle(200, 200, 0); f.add(t); t.fd(100); t.rt(90); t.fd(130); } }
TurtleGraphicsで遊ぶ
TurtleGraphicsで遊ぶ• サンプルコード class Test { pubic static void main(String[] args) { TurtleFrame f = new TurtleFrame(700, 500); Turtle t = new Turtle(200, 200, 0); f.add(t); t.fd(100); t.rt(90); t.fd(130); } }
ウィンドウ生成
• サンプルコード class Test { pubic static void main(String[] args) { TurtleFrame f = new TurtleFrame(700, 500); Turtle t = new Turtle(200, 200, 0); f.add(t); t.fd(100); t.rt(90); t.fd(130); } }
TurtleGraphicsで遊ぶ
②カメ生成
• サンプルコード class Test { pubic static void main(String[] args) { TurtleFrame f = new TurtleFrame(700, 500); Turtle t = new Turtle(200, 200, 0); f.add(t); t.fd(100); t.rt(90); t.fd(130); } }
TurtleGraphicsで遊ぶ
③ウィンドウにカメ追加
• サンプルコード class Test { pubic static void main(String[] args) { TurtleFrame f = new TurtleFrame(700, 500); Turtle t = new Turtle(200, 200, 0); f.add(t); t.fd(100); t.rt(90); t.fd(130); } }
TurtleGraphicsで遊ぶ
④カメに命令
TurtleGraphicsで遊ぶ• 実行結果
TurtleGraphicsで遊ぶ• もっと遊ぼう! ステップ1 カメを複数作って動かす
ステップ2 for文やif文で華麗に制御する
ステップ3 Thread(スレッド)で匠のようにあやつる
ステップ4 TurtleGraphics3dに挑戦してみる
TurtleGraphicsで遊ぶ• もっと遊ぼう! ステップ1 カメを複数作って動かす
キーワード オブジェクト生成
TurtleGraphicsで遊ぶ• もっと遊ぼう! ステップ2 for文やif文で華麗に制御する
! キーワード for文、if文、break、continue
TurtleGraphicsで遊ぶ• もっと遊ぼう! ステップ3 Thread(スレッド)で匠のようにあやつる
! キーワード Thread、run、start
TurtleGraphicsで遊ぶ• もっと遊ぼう! ステップ4 TurtleGraphics3dに挑戦してみる
キーワード TurtleGraphics3d