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

Turtle Graphicsで遊ぼう!