ラベル turtle の投稿を表示しています。 すべての投稿を表示
ラベル turtle の投稿を表示しています。 すべての投稿を表示

2026年6月30日火曜日

Pythonの turtle グラフィックスにおけるキャンパス(画面)の仕組み

 Pythonの turtle グラフィックスにおけるキャンパス(画面)の仕組みは、「座標平面」の考え方が基本となっています。数学のグラフをイメージすると非常に理解しやすいです。

1. 座標の仕組み

turtle の世界では、画面の中心が原点 (0, 0) となります。

  • X軸: 右に行くほどプラス、左に行くほどマイナス。

  • Y軸: 上に行くほどプラス、下に行くほどマイナス。

2. キャンパスの大きさと座標範囲

標準的なキャンパスのサイズは、デフォルトで 幅 400px × 高さ 300px です。

画面の端の座標は以下のようになります。

  • 右上: (200, 150)

  • 右下: (200, -150)

  • 左上: (-200, 150)

  • 左下: (-200, -150)

3. サイズの変更方法

キャンパスの大きさは turtle.setup() を使って自由に変更できます。




Python

import turtle

# 幅 800ピクセル、高さ 600ピクセルに変更
turtle.setup(800, 600)

もし「画面全体」を使いたい場合は、width や height に 1.0 などの数値を指定して比率で設定することも可能です。

4. 座標を扱う際のヒント

現在位置の確認

カメが今どこにいるかは turtle.pos() で確認できます。




Python

print(turtle.pos())  # 出力例: (0.00, 0.00)

特定の場所へ移動する

カメを自由に移動させるには以下のメソッドを使います。

  • turtle.goto(x, y): 指定した座標へ直線的に移動します。

  • turtle.setx(x) / turtle.sety(y): X座標またはY座標だけを指定して移動します。

注意点:キャンパスからはみ出すと?

デフォルトでは、カメがキャンパスの端を超えて移動してもエラーにはなりません。そのまま画面外へ消えていくだけです。もし「はみ出したら跳ね返る」などの処理を作りたい場合は、以下のような条件分岐が必要になります。




Python

# 例:X座標が200を超えたら左に戻す
if turtle.xcor() > 200:
    turtle.goto(-200, turtle.ycor())

まとめ表

項目

内容

原点

画面中央 (0, 0)

デフォルトサイズ

400 × 300 ピクセル

移動コマンド

goto(x, y)

現在地の取得

pos()

まずは turtle.goto(100, 100) や turtle.goto(-100, -100) のように、座標を指定してカメを動かしてみると、平面の感覚がすぐにつかめるはずです。

※この回答の右下にある「コピー」アイコンをクリックすると、上記コードや解説を簡単にコピーできます。座標について、他にも試してみたい図形や動かし方のアイデアはありますか?


Pythonの turtle モジュールで標準的に利用可能なシェイプ(形状)

 Pythonの turtle モジュールで標準的に利用可能なシェイプ(形状)は、以下の通りです。

turtle.shape("名前") を実行することで変更できます。

標準で用意されているシェイプ名

  • "arrow" (矢印:デフォルト)

  • "turtle" (カメ)

  • "circle" (円)

  • "square" (正方形)

  • "triangle" (三角形)

  • "classic" (昔ながらの矢印)

利用可能なシェイプを確認する方法

現在どのようなシェイプが登録されているかは、以下のコードで確認できます。




Python

import turtle

# 登録されているシェイプの一覧を取得
print(turtle.getshapes())

独自のシェイプを追加する方法

上記の標準シェイプ以外に、自分で作成したポリゴンや画像を登録することも可能です。

  1. ポリゴンを作成して登録する場合
    turtle.register_shape("名前", ((x1, y1), (x2, y2), ...)) のように頂点座標を指定して登録します。

  2. 画像ファイル(GIF形式)を登録する場合
    turtle.register_shape("画像名.gif") とすることで、その画像をタートルとして表示させることができます。

補足:コピー機能について

ご要望の「回答をコピーするアイコン」については、インターフェース上のボタンとして実装されているものが利用可能です。PCブラウザ等で閲覧されている場合、回答ブロックの右下やメニュー付近にある「コピー」アイコンをクリックすることで、回答内容をクリップボードにコピーできます。