Turtleクラスの初期化

class Turtle(width, height, canvasID)

Parameters:

width – 整数

height – 整数

canvasID – 文字列

事前に HTML 上でキャンバスを作成して ID を付与し、キャンバスの幅と高さと共に指定します。

初期化時に指定したサイズにキャンバスがリサイズされます。

let turtle = new Turtle(800, 600, "canvas");

※デモページでは自動で turtle が定義されています。再定義しないでください。

Turtleのメソッドと対応する関数

Turtleの移動

await turtle.forward(distance)

Parameters:

distance – 整数

Turtleが向かっている方向に、指定された距離 distance だけTurtleを前進させます。

await turtle.forward(25);
await turtle.backward(distance)

Parameters:

distance – 整数

Turtleが向かっている方向とは逆方向に、指定された距離 distance だけTurtleを後方に移動させます。 Turtleの向きは変わりません。

await turtle.backward(30);
await turtle.right(angle)

Parameters:

angle – 整数

Turtleを指定された角度 angle だけ右向きに回転させます。

await turtle.right(45);
await turtle.left(angle)

Parameters:

angle – 整数

Turtleを指定された角度 angle だけ左向きに回転させます。

await turtle.left(45);
await turtle.goto(x, y)

Parameters:

  • x – 整数

  • y – 整数

Turtleを座標 (x, y) に移動させます。ペンが下りていれば線を引きます。Turtleの向きは変化しません。

await turtle.goto(60, 30);
await turtle.setx(x)

Parameters:

x – 整数

Turtleの第1座標を x にします。第2座標は変化しません。

await turtle.setx(10);
await turtle.sety(y)

Parameters:

y – 整数

Turtleの第2座標を y にします。第1座標は変化しません。

await turtle.sety(-10);
await turtle.setheading(to_angle)

Parameters:

to_angle – 整数

Turtleの向きを角度 to_angle に設定します。以下はよく使われる方向を角度で表わしたものです:

to_angle

向き

  0

 90

180

270

await turtle.setheading(90);
await turtle.home()

Turtleを原点 (0, 0) に移動し、方向を開始方向に設定する。

await turtle.home();
await turtle.circle(radius, extent)

Parameters:

  • radius – 整数

  • extent – 整数

与えられた半径 radius で円を描きます。 円の中心はTurtleから半径 radius の距離だけ左にあります。 中心角 extent が与えられなければ、デフォルトで完全な円になります。 中心角 extent が完全な円でない場合、円弧の一方の端点は現在のペンの位置になります。 半径 radius が正の場合は反時計回りに、そうでない場合は時計回りに円弧を描きます。 Turtleの方向は extent の分だけ変化します。

await turtle.circle(120, 180);
turtle.dot()

Parameters:

  • size – 自然数

与えられた直径 size で円形の点を描きます。

turtle.dot(20);
turtle.stamp()

現在のTurtleの位置にTurtleの形状のコピーをつくります。

turtle.stamp();
turtle.speed(speed)

Parameters:

speed – 整数(0~10)

Turtleの速度を0〜10の範囲の整数値に設定します。

以下に速度の対応表を示します:

speed

速さ

 0

最速

10

高速

 6

標準

 3

低速

 1

超低速

speed が1~10のときには、数値が大きくなるほど線の描画やTurtleの回転アニメーションが速くなります。

アニメーションの速度は絶対的なものではなく、デバイスの処理速度に応じて変化します。

speed = 0 はアニメーションが行われないことを意味します。 forward() / backward() はTurtleをジャンプさせ、 同様に left() / right() はTurtleを瞬時に回転させます。

turtle.speed(8);

Penの制御

turtle.pendown()

ペンを「描画モード」に切り替えます。Turtleが移動するとその軌跡に沿って線が描かれます。

turtle.penup()

ペンを「非描画モード」に切り替えます。Turtleが移動しても線が描かれなくなります。

turtle.pensize(width)

Parameters:

width – 自然数

線の太さを width にします。

turtle.pensize(10);
turtle.pencolor(*args)

ペンの色を設定します

3種類の入力形式が受け入れ可能です:

pencolor(colorstring)

ペンの色を colorstring に設定します、その値は "yellow""#33cc8c" のような色指定文字列です。

pencolor((r, g, b))

ペンの色を r, g, b のタプルで表された RGB の色に設定します。

pencolor(r, g, b)

ペンの色を r, g, b で表された RGB の色に設定します。

Turtleの輪郭は新しく設定されたペンの色で描かれます。

turtle.pencolor("brown");
turtle.pencolor((0.2, 0.8, 0.55));
turtle.pencolor('#32c18f');
turtle.fillcolor(*args)

塗りつぶしの色を設定します

3種類の入力形式が受け入れ可能です:

fillcolor(colorstring)

塗りつぶしの色を colorstring に設定します、その値は "yellow""#33cc8c" のような色指定文字列です。

fillcolor((r, g, b))

塗りつぶしの色を r, g, b のタプルで表された RGB の色に設定します。

fillcolor(r, g, b)

塗りつぶしの色を r, g, b で表された RGB の色に設定します。

Turtleの内部は新しく設定された塗りつぶしの色で描かれます。

turtle.fillcolor("violet");
turtle.fillcolor((50, 193, 143));
turtle.fillcolor('#ffffff');
turtle.color(*args)

ペンの色と塗りつぶしの色を設定します

3種類の入力形式が受け入れ可能です:

以下のように1~3の引数を使用したいくつかの入力フォーマットが認められています:

color(colorstring), color((r,g,b)), color(r,g,b)

pencolor() と同様に入力し、fillcolor と pencolorの両方を指定された値に設定します。

color(colorstring1, colorstring2), color((r1,g1,b1), (r2,g2,b2))

pencolor(colorstring1)および fillcolor(colorstring2)と等価であり、 他の入力フォーマットが使われる場合も同様です。

Turtleの輪郭と内部が、新しく設定された色で描かれます。

turtle.color("red", "green");
turtle.color("#285078", "#a0c8f0");
turtle.bgcolor(*args)

キャンバスの背景色を設定します

3種類の入力形式が受け入れ可能です:

bgcolor(colorstring)

キャンバスの背景色を colorstring に設定します、その値は "yellow""#33cc8c" のような色指定文字列です。

bgcolor((r, g, b))

キャンバスの背景色を r, g, b のタプルで表された RGB の色に設定します。

bgcolor(r, g, b)

キャンバスの背景色を r, g, b で表された RGB の色に設定します。

turtle.bgcolor("yellow");
turtle.begin_fill()

塗りつぶされる図形を描画する直前に呼び出します。

turtle.end_fill()

begin_fill() を呼び出した後に描画された図形を塗りつぶします。

turtle.color("black", "red");
turtle.begin_fill();
await turtle.circle(80);
turtle.end_fill();

Turtleの状態

turtle.hideturtle()

Turtleを画面上から非表示にします。

Turtleを隠すことで描画速度が向上するため、特に複雑な図形を描いている際に活用するのがおすすめです。

turtle.hideturtle();
turtle.showturtle()

Turtleを表示します。

turtle.showturtle();
turtle.turtlesize(stretch)

Parameters:

  • stretch – 自然数

Turtleの大きさを設定します。

turtle.turtlesize(10);

特別なTurtleのメソッド

await turtle.undo()

最後に行われたTurtleの操作を取り消します。

await turtle.forward(50);
await turtle.undo();
turtle.reset()

画面からTurtleの描画を削除し、Turtleの中心を合わせ直し、Turtleに関する変数をデフォルト値に設定します。

turtle.reset();
await turtle.sleep(secs)

Parameters:

  • secs – 正の数(小数または整数)

secs 秒の間、呼び出し元のスレッドの実行を一時停止します。

※ システム内の他のアクティビティとのスケジューリングのため、中断時間は要求された時間よりも長くなる可能性があります。

await turtle.sleep(3.0);