PythonのTurtle Graphicsで図形描画プロジェクト

目次

プロジェクト概要

前提条件

  • Pythonプログラミングの基本的な知識(変数、関数、クラスの概念)
  • VSCodeエディタの基本操作ができること
  • ターミナル(コマンドライン)の基本的な使用経験
  • Gitとバージョン管理の基礎知識

開発環境

  • Python 3.6以上
  • VSCode(Visual Studio Code)
  • Git(バージョン管理システム)
  • GitHubアカウント
  • turtle(Python標準ライブラリ)

プロジェクト内容

このプロジェクトでは、PythonのTurtle Graphicsライブラリを使用して、日本国旗を描画するグラフィックスシステムを構築します。初心者でも段階的に学習できるよう、基本的な環境設定から図形描画まで、4つのステップに分けて実装していきます。

プロジェクトの核となるのは、Turtle GraphicsとScreenオブジェクトを使用した2Dグラフィックス描画技術です。座標系の概念を理解し、数学的な計算に基づいて正確な図形を描画するシステムを開発します。これにより、プログラミングと数学の知識を組み合わせた実用的なツールを作成できます。

図形描画においては、circle()関数を使用して正確な円形を描画し、begin_fill()とend_fill()による塗りつぶし機能を実装します。日本国旗の正式な比率(縦横比2:3)に基づいたサイズ計算も行い、実際の国旗と同じ比率で描画できるシステムを構築します。

プロジェクトの特徴として、オブジェクト指向プログラミングを活用したクラス設計を採用しています。FlagDrawerクラスを中心とした構造化されたコード設計により、各機能を独立したメソッドとして実装し、コードの可読性と保守性を向上させます。

また、ユーザーインタラクション機能として、exitonclick()によるクリック終了機能を実装し、使いやすいアプリケーションとして完成させます。これにより、単なる描画プログラムではなく、実際にユーザーが操作できるグラフィックスアプリケーションを開発できます。

最終的に、完成したプロジェクトをGitHubにアップロードし、ポートフォリオとして活用できる形にします。適切なドキュメント(README.md)の作成や、.gitignoreファイルの設定など、実際の開発現場で必要とされる技術も学習できます。

実装内容

  • Turtle GraphicsとScreenオブジェクトの初期設定
  • 仮想環境の構築と依存関係管理(requirements.txt)
  • 座標系設定と数学的比率計算システム
  • circle()関数による正確な円形描画
  • カラーコード指定と塗りつぶし処理
  • オブジェクト指向設計によるクラス実装
  • ユーザーインタラクション機能(クリック終了)
  • GitHubでのバージョン管理とポートフォリオ公開

得られるスキル

  • Turtle Graphics(2Dグラフィックス描画とオブジェクト制御)
  • 座標系プログラミング(数学的座標計算と図形配置)
  • 図形描画技術(circle()関数による正確な円形描画)
  • 色彩管理(カラーコードと塗りつぶし処理)

得られる経験

  • グラフィックスプログラミングの基礎体験
  • オブジェクト指向設計によるクラス開発
  • 数学的比率計算を用いた正確な図形描画
  • ユーザーインタラクション機能の実装

得られる成果物

  • 完全に動作する日本国旗描画システム
  • GitHubでのポートフォリオとして活用可能なプロジェクト
  • 完全なPythonソースコード

このプロジェクトから応用できること

  • 教育向けプログラミング教材の作成
  • 幾何学図形描画ツールの開発
  • ロゴ作成システムの構築
  • 簡単なゲーム開発への応用
  • 子供向けプログラミング教室での教材活用

Step1:開発環境の準備とプロジェクト構造の作成

このステップでは、日本国旗描画プロジェクトを始めるための開発環境を整備し、必要なファイル構造を作成していきます。プログラミングを始める前の準備段階として、とても重要な作業になります。

※Step1の内容がわからない際は、下記記事にGitHubとVSCodeの連携について詳細を記載しているためご参照ください。

GitHubリポジトリの作成

まず最初に、プロジェクト専用のGitHubリポジトリを作成しましょう。

  1. GitHubの公式サイトにアクセスし、自分のアカウントでログインします
  2. 画面右上の「+」アイコンをクリックし、ドロップダウンメニューから「New repository」を選択します
  3. 新しいリポジトリの作成ページで、以下の情報を入力します

リポジトリの設定

  • Repository namejapanese-flag-turtle-graphics」と入力
  • DescriptionPythonのTurtle Graphicsを使用した日本国旗描画プロジェクト」と入力
  • VisibilityPublic」を選択(ポートフォリオとして公開するため)
  • Initialize this repository with
    • Add a README file」にチェックを入れる
    • Add .gitignore」で「Python」を選択
    • Choose a license」は「None」のままにする
  1. Create repository」ボタンをクリックしてリポジトリを作成します

プロジェクトフォルダの作成

次に、プロジェクトを管理するための親フォルダを作成しましょう。

Windows・macOS共通

  1. デスクトップや任意の場所に新しいフォルダを作成します
  2. フォルダ名は任意ですが、ここでは例として「PythonPortfolio」に設定します

この親フォルダが、今後のプロジェクト全体を管理するルートディレクトリとなります。複数のプロジェクトを整理して管理するために作成しておくと便利です。

VSCodeでプロジェクトを開く

作成したGitHubリポジトリをローカルにクローンして開きましょう。

  1. VSCodeを起動します
  2. 左側のアクティビティバーからソース管理アイコン(分岐のようなアイコン)をクリックします
  3. リポジトリの複製」ボタンをクリックします
  4. GitHubから複製」を選択します
  5. 先ほど作成した「japanese-flag-turtle-graphics」リポジトリを選択します
  6. リポジトリ宛先として先ほど作成した親フォルダを選択します
  7. クローンしたリポジトリを開きますか」というウィンドウが表示されたら「開く」をクリックします

VSCodeの左側にエクスプローラーパネルが表示され、現在のプロジェクトフォルダの中身が確認できるようになります。

仮想環境の作成とアクティベート

Python開発において仮想環境は非常に重要です。仮想環境とは、プロジェクトごとに独立したPython実行環境を作成する仕組みのことです。これにより、プロジェクト間でのライブラリの競合を防ぎ、クリーンな開発環境を維持できます。

詳しくは下記記事をご参照ください。

Windows環境での仮想環境作成

  1. VSCodeの上部メニューから「ターミナル」→「新しいターミナル」を選択
  2. 以下のコマンドで仮想環境を作成します
python -m venv myenv
  1. 仮想環境をアクティベートします
myenv\Scripts\activate

macOS環境での仮想環境作成

  1. VSCodeの上部メニューから「ターミナル」→「新しいターミナル」を選択
  2. 以下のコマンドで仮想環境を作成します
python3 -m venv myenv
  1. 仮想環境をアクティベートします
source myenv/bin/activate

重要なポイント

  • 仮想環境名は「myenv」として作成
  • ターミナルの行頭に「(myenv)」と表示されることを確認
  • この表示があることで、仮想環境が正常にアクティベートされていることがわかります

プロジェクトファイル構造の作成

次に、今回の日本国旗描画プロジェクトに必要なファイルを作成していきます。VSCodeのエクスプローラーパネルを使用してファイルを作成しましょう。

メインプログラムファイルの作成

  1. VSCodeの左側エクスプローラーパネルで「新しいファイル」アイコン(ファイルの絵とプラスのマークがあるアイコン)をクリック
  2. ファイル名を「flag_drawer.py」として作成

この「flag_drawer.py」ファイルが、今回の日本国旗描画機能を実装するメインプログラムとなります。.py拡張子Pythonスクリプトファイルであることを示しており、実行可能なプログラムコードを記述するために使用します。

依存関係管理ファイルの作成

  1. プロジェクトのルートフォルダ(japanese-flag-turtle-graphics)をクリックして選択
  2. 新しいファイル」アイコンをクリック
  3. ファイル名を「requirements.txt」として作成

requirements.txtファイルは、Pythonプロジェクトで使用する外部ライブラリとそのバージョンを記録するための重要なファイルです。これにより、他の開発者や本番環境でも同じライブラリ環境を再現できます。

requirements.txtの内容設定

作成した「requirements.txt」ファイルをVSCodeで開き、以下の内容を記述してください。

# Turtle Graphicsは標準ライブラリのため追加パッケージは不要
# 将来的な拡張のためのプレースホルダー

今回のプロジェクトでは、Turtle GraphicsというPythonの標準ライブラリを使用します。

  • Turtle Graphics は、2Dグラフィックスを描画するためのライブラリです。画面上の仮想的な「亀(turtle)」を動かして線を引いたり図形を描いたりできる、プログラミング学習に最適なツールです。日本国旗の円形を描画する際に使用します

標準ライブラリとは、Pythonをインストールした時点で既に含まれているライブラリのことで、追加でインストールする必要がありません。

プロジェクト構造の確認

この時点で、VSCodeのエクスプローラーパネルには以下のような構造が表示されているはずです。

japanese-flag-turtle-graphics/
├── myenv/                      # 仮想環境フォルダ
├── flag_drawer.py             # メインプログラムファイル
├── requirements.txt           # 依存関係管理ファイル
├── README.md                  # プロジェクト説明書(GitHub作成時に自動生成)
└── .gitignore                 # Git除外設定ファイル(GitHub作成時に自動生成)

このシンプルな構造が、今回の国旗描画プロジェクトの基盤となります。Turtle Graphicsプロジェクトは比較的小規模なため、1つのメインファイルで完結するシンプルな構成になっています。

GitHubで作成したリポジトリをクローンしたため、README.md.gitignoreファイルが最初から含まれています。

仮想環境が正常にアクティベートされていることを再度確認し(ターミナルに「(myenv)」が表示されている状態)、次のステップに進む準備を整えましょう。

ライブラリの確認

仮想環境がアクティベートされている状態で、VSCodeのターミナルから以下のコマンドを実行し、Pythonが正常に動作することを確認します。

python --version

または

python3 --version

Python 3.6以上のバージョンが表示されれば、Turtle Graphicsを使用する準備が整っています。Turtle Graphicsは標準ライブラリのため、特別なインストール作業は必要ありません。

これで開発環境の準備が完了し、次のステップでTurtle Graphicsの基本設定に進むことができます。

Step2:Turtle Graphicsの基本設定とキャンバス初期化

このステップでは、Turtle Graphicsライブラリの基本設定を行い、日本国旗を描画するためのキャンバス(描画領域)を初期化します。グラフィックスプログラミングの基礎となる重要な設定作業です。

FlagDrawerクラスの作成

まず、国旗描画機能をまとめて管理するクラスを作成します。このクラスの中に、今後必要な機能をすべてdef文(関数)として実装していきます。

flag_drawer.py」ファイルを開き、以下のコードを記述してください。

import turtle as tu


class FlagDrawer:
    """日本国旗を描画するクラス"""
    
    def __init__(self, canvas_width=800, canvas_height=600):
        """
        クラスの初期化メソッド
        引数で指定された幅と高さでキャンバスサイズを設定
        """
        self.canvas_width = canvas_width        # キャンバスの横幅
        self.canvas_height = canvas_height      # キャンバスの縦幅
        self.turtle_obj = None                  # 描画用の亀オブジェクト
        self.screen_obj = None                  # 画面管理オブジェクト

__init__メソッドはクラスの初期化を行う特別な関数です。ここでキャンバスのサイズ設定を受け取り、描画に必要な属性を定義します。

描画環境の設定機能

次に、クラス内にsetup_canvasメソッドを実装します。

    def setup_canvas(self):
        """
        描画キャンバスとTurtleオブジェクトの基本設定
        画面オブジェクトと亀オブジェクトを作成して初期設定を行う
        """
        # 画面オブジェクトを作成して基本設定
        self.screen_obj = tu.Screen()
        self.screen_obj.setup(width=self.canvas_width, height=self.canvas_height)
        self.screen_obj.bgcolor("white")                    # 背景色を白に設定
        self.screen_obj.title("日本国旗 - Turtle Graphics") # ウィンドウタイトル設定
        
        # 亀オブジェクトを作成して基本設定
        self.turtle_obj = tu.Turtle()
        self.turtle_obj.speed(3)        # 描画速度を設定(1-10の範囲)
        self.turtle_obj.shape("turtle") # 亀の形状を亀型に設定

このメソッドはクラス内で定義されているため、selfキーワードを使用してクラスの属性にアクセスできます。

Screenオブジェクトの詳細設定

Screenオブジェクトは、描画が行われるウィンドウ全体を管理するオブジェクトです。

    def configure_screen_settings(self):
        """
        画面の詳細設定メソッド
        座標系の設定とウィンドウの配置を調整する
        """
        # ウィンドウの位置を画面上で調整
        self.screen_obj.setup(width=self.canvas_width, 
                             height=self.canvas_height, 
                             startx=100,    # 画面左端からの距離
                             starty=100)    # 画面上端からの距離
        
        # 座標系を数学的な座標系に設定(中央が原点)
        self.screen_obj.setworldcoordinates(-400, -300, 400, 300)
        
        # 描画アニメーションの更新頻度を調整
        self.screen_obj.tracer(1, 10)   # 更新間隔と遅延時間

この設定により、座標系が中央を原点(0,0)とする標準的な数学座標系になります。tracer()関数は描画アニメーションの更新頻度を調整します。

Turtleオブジェクトの基本設定

Turtleオブジェクトは、実際に線を描く仮想的な亀を表すオブジェクトです。

    def configure_turtle_settings(self):
        """
        亀オブジェクトの詳細設定メソッド
        ペンの設定と初期位置を調整する
        """
        # 描画速度を設定(1が最遅、10が最速)
        self.turtle_obj.speed(5)
        
        # ペンの太さと色を設定
        self.turtle_obj.pensize(2)      # ペンの太さ
        self.turtle_obj.color("red")    # ペンの色
        
        # 亀の初期位置を原点に設定
        self.turtle_obj.penup()         # ペンを上げる(移動時に線を引かない)
        self.turtle_obj.home()          # 原点(0,0)に移動
        self.turtle_obj.pendown()       # ペンを下ろす(描画モード)
        
        # 亀の向きを上向きに設定
        self.turtle_obj.setheading(90)  # 90度は上向き

penup()とpendown()は、ペンを紙から離したり付けたりする動作を制御します。home()で原点に戻り、setheading()で向きを設定します。

描画準備の統合メソッド

設定機能を統合して呼び出すメソッドを作成します。

    def initialize_drawing_environment(self):
        """
        描画環境の完全な初期化メソッド
        すべての設定メソッドを順番に呼び出して環境を整える
        """
        self.setup_canvas()                 # 基本的なキャンバス設定
        self.configure_screen_settings()    # 画面の詳細設定
        self.configure_turtle_settings()    # 亀オブジェクトの設定
        
        # 初期化完了の確認メッセージ
        print("描画環境の初期化が完了しました")
        print(f"キャンバスサイズ {self.canvas_width} x {self.canvas_height}")
        print("日本国旗の描画準備完了")

このメソッドにより、一度の呼び出しで必要な設定がすべて完了します。

メイン実行部分の実装

クラスの外側に、プログラムのメイン実行部分を作成します。

def main():
    """
    メイン実行関数(クラスの外側で定義)
    プログラムの開始点となる関数
    """
    print("=== 日本国旗描画プロジェクト ===")
    print("Turtle Graphicsライブラリを使用した国旗描画")
    
    # FlagDrawerオブジェクトの作成
    flag_drawer = FlagDrawer(canvas_width=800, canvas_height=600)
    
    # 描画環境の初期化
    flag_drawer.initialize_drawing_environment()
    
    # ウィンドウを開いたまま保持
    print("描画ウィンドウが開きました。ウィンドウをクリックして閉じてください。")
    flag_drawer.screen_obj.exitonclick()   # クリックでウィンドウを閉じる


# プログラムの実行開始点
if __name__ == "__main__":
    main()  # main関数を呼び出してプログラム開始

exitonclick()は、ユーザーがウィンドウをクリックするまで画面を開いたまま保持する機能です。mainloop()の代替として使用できます。

動作テスト実行

VSCodeのターミナルでプログラムを実行してテストします。

python flag_drawer.py

出力結果

画像 白い背景の800×600ピクセルのウィンドウが表示され、中央に小さな亀の形状が赤い色で表示される。ウィンドウのタイトルバーには「日本国旗 – Turtle Graphics」と表示される。


Step3:日本国旗の円形描画実装

このステップでは、日本国旗の特徴的な赤い円を描画する機能を実装します。座標計算、図形描画、色の塗りつぶしなど、Turtle Graphicsの核となる描画機能を学習していきます。

円形描画メソッドの追加

FlagDrawerクラスに、日本国旗の赤い円を描画するメソッドを追加します。

    def draw_circle_flag(self, radius=100):
        """
        日本国旗の赤い円を描画するメソッド
        指定された半径で中央に円を描画し、日本国旗の正式な色で塗りつぶす
        """
        # 円の描画開始位置を設定(円の中心から半径分下に移動)
        self.turtle_obj.penup()             # ペンを上げて移動準備
        self.turtle_obj.goto(0, -radius)    # 円の下端に移動
        self.turtle_obj.pendown()           # ペンを下ろして描画準備
        
        # 日本国旗の正式な色を設定
        self.turtle_obj.fillcolor("#E60012")  # 塗りつぶし色(日本国旗の赤)
        self.turtle_obj.pencolor("#E60012")   # 輪郭線の色
        
        # 塗りつぶし描画を開始
        self.turtle_obj.begin_fill()        # 塗りつぶし開始マーク
        
        # 円を描画(引数は半径)
        self.turtle_obj.circle(radius)      # 指定半径で円を描画
        
        # 塗りつぶし描画を終了
        self.turtle_obj.end_fill()          # 塗りつぶし終了マーク

このメソッドでは、circle()関数を使用して円を描画します。begin_fill()とend_fill()で囲むことで、描画した図形を指定した色で塗りつぶします。

国旗の比率計算メソッドの追加

日本国旗の正式な比率に基づいて、適切なサイズを計算するメソッドを追加します。

    def calculate_flag_proportions(self):
        """
        日本国旗の正式な比率に基づいてサイズを計算するメソッド
        国旗の正式な縦横比と円のサイズ比率を計算する
        """
        # 日本国旗の正式な比率は縦2:横3
        flag_width = min(self.canvas_width * 0.7, 600)    # キャンバスの70%またはmax600px
        flag_height = flag_width * (2/3)                  # 縦横比2:3を適用
        
        # 円の直径は旗の縦の長さの3/5(正式な比率)
        circle_diameter = flag_height * 0.6               # 縦の60%が円の直径
        circle_radius = circle_diameter / 2               # 半径は直径の半分
        
        # 計算結果を辞書として返す
        return {
            'flag_width': flag_width,       # 国旗の横幅
            'flag_height': flag_height,     # 国旗の縦幅  
            'circle_radius': circle_radius  # 円の半径
        }

辞書型でサイズ情報を返すことで、複数の値を一度に取得できます。

描画位置調整メソッドの追加

円を画面の中央に正確に配置するためのメソッドを追加します。

    def center_drawing_position(self):
        """
        描画位置を画面中央に調整するメソッド
        亀の位置と向きをリセットして正確な描画を行う
        """
        # 亀を中央の原点に移動
        self.turtle_obj.penup()         # ペンを上げて移動モード
        self.turtle_obj.goto(0, 0)      # 座標原点(0,0)に移動
        
        # 描画の向きをリセット
        self.turtle_obj.setheading(0)  # 右向き(0度)に設定
        
        # 位置調整完了のメッセージ
        print("描画位置を中央に設定しました")

goto(0, 0)で座標原点に移動し、setheading(0)で亀の向きを右向きにリセットします。

国旗描画の統合メソッドの追加

これまでのメソッドを統合して、完全な日本国旗を描画するメソッドを追加します。

    def draw_complete_flag(self):
        """
        完全な日本国旗を描画する統合メソッド
        比率計算から描画完了まで一連の処理を実行する
        """
        # 国旗の正式な比率を計算
        proportions = self.calculate_flag_proportions()
        
        # 描画位置を画面中央に調整
        self.center_drawing_position()
        
        # 計算された半径で赤い円を描画
        self.draw_circle_flag(radius=proportions['circle_radius'])
        
        # 描画完了の確認メッセージ
        print(f"日本国旗の描画が完了しました")
        print(f"円の半径: {proportions['circle_radius']:.1f}px")
        
        # 描画完了後に亀を隠す
        self.turtle_obj.hideturtle()    # 亀のアイコンを非表示

hideturtle()で描画完了後に亀のアイコンを非表示にし、完成した国旗だけが見えるようにします。

configure_turtle_settingsメソッドの更新

描画品質を向上させるため、既存のメソッドを更新します。

    def configure_turtle_settings(self):
        """
        亀オブジェクトの詳細設定メソッド(更新版)
        描画品質向上のための設定調整
        """
        # 描画速度を少し上げて効率化
        self.turtle_obj.speed(6)        # 速度を6に設定(描画時間短縮)
        
        # ペンの設定を調整
        self.turtle_obj.pensize(1)      # 細い線で輪郭をきれいに
        self.turtle_obj.color("red")    # 基本色を赤に設定
        
        # 亀の初期位置を原点に設定
        self.turtle_obj.penup()         # ペンを上げる
        self.turtle_obj.home()          # 原点(0,0)に移動
        self.turtle_obj.pendown()       # ペンを下ろす
        
        # 亀の向きを右向きに設定(円描画に最適)
        self.turtle_obj.setheading(0)  # 0度は右向き

speed(6)に変更して描画時間を短縮し、pensize(1)で線を細くしてより美しい仕上がりにします。

メイン実行部分の更新

main関数を更新して、実際に国旗を描画するようにします。

def main():
    """
    メイン実行関数(更新版)
    実際に日本国旗を描画するプログラムの実行
    """
    print("=== 日本国旗描画プロジェクト ===")
    # print("Turtle Graphicsライブラリを使用した国旗描画")  # 不要になったためコメントアウト
    
    # FlagDrawerオブジェクトの作成
    flag_drawer = FlagDrawer(canvas_width=800, canvas_height=600)
    
    # 描画環境の初期化
    flag_drawer.initialize_drawing_environment()
    
    # 日本国旗を実際に描画
    flag_drawer.draw_complete_flag()
    
    # ウィンドウを開いたまま保持してユーザーの操作を待つ
    print("描画ウィンドウが開きました。ウィンドウをクリックして閉じてください。")
    flag_drawer.screen_obj.exitonclick()   # クリックで終了


# プログラムの実行開始点
if __name__ == "__main__":
    main()  # main関数を呼び出してプログラム実行

draw_complete_flag()メソッドを呼び出すことで、完全な日本国旗が描画されます。

動作テスト実行

VSCodeのターミナルでプログラムを実行してテストします。

python flag_drawer.py

出力結果

画像 白い背景の800×600ピクセルのウィンドウに、中央に配置された赤い円(日本国旗)が表示される。円は正確な比率で描画され、鮮やかな赤色(#E60012)で塗りつぶされている。

Step4:プロジェクトをGitHubにアップロード

このステップでは、完成した日本国旗描画プロジェクトをGitHubにアップロードし、ポートフォリオとして活用できる形にします。最終的なファイル整理とコードの公開を行っていきます。

.gitignoreファイルの更新

既存の.gitignoreファイルに、プロジェクト固有の除外設定を追加します。

VSCodeで「.gitignore」ファイルを開き、以下の内容を末尾に追加してください。

# Virtual environment
myenv/

# Python cache files
__pycache__/
*.pyc
*.pyo

# IDE settings
.vscode/settings.json

これらを追加する理由について説明します。

  • myenv/ 仮想環境フォルダはプロジェクト固有のため、リポジトリに含める必要がありません
  • pycache/ Pythonが自動生成するキャッシュフォルダを除外
  • *.pyc Pythonコンパイルファイルを除外
  • .vscode/settings.json 個人的なエディタ設定を除外

README.mdファイルの更新

リポジトリ作成時に生成されたREADME.mdファイルの内容を、プロジェクトの詳細情報に更新します。

VSCodeで「README.md」ファイルを開き、内容を以下のように全て置き換えてください。

# PythonのTurtle Graphicsで日本国旗描画プロジェクト

## プロジェクト内容
PythonのTurtle Graphicsライブラリを使用して日本国旗を描画するグラフィックスプロジェクトです。座標系の理解、図形描画、色の設定、塗りつぶし機能など、2Dグラフィックスプログラミングの基礎技術を学習することを目的として実装しました。

## プロジェクト構成

```
japanese-flag-turtle-graphics/
├── flag_drawer.py           # メインプログラム
├── requirements.txt         # 依存関係管理
├── README.md               # プロジェクト説明書
└── .gitignore              # Git除外ファイル設定
```

## 必要要件/開発環境
- **Python 3.6以上**
- **VSCode** (開発環境)
- **Git** (バージョン管理)

### 使用ライブラリ
- **turtle** 2Dグラフィックス描画(Python標準ライブラリ)

## 機能
- **キャンバス初期化** 描画ウィンドウの設定と背景色指定
- **座標系設定** 中央原点の数学座標系を採用
- **図形描画** circle()関数による正確な円形描画
- **色彩管理** 日本国旗公式カラーコード(#E60012)の適用
- **塗りつぶし処理** begin_fill()とend_fill()による図形塗りつぶし
- **比率計算** 日本国旗の正式な縦横比(2:3)に基づくサイズ調整
- **描画品質最適化** ペンサイズと描画速度の調整
- **ユーザーインタラクション** クリック終了機能

## 実行方法

### 1. リポジトリのクローン
```bash
git clone https://github.com/yourusername/japanese-flag-turtle-graphics.git
cd japanese-flag-turtle-graphics
```

### 2. 仮想環境の作成・アクティベート
**Windows**
```bash
python -m venv myenv
myenv\Scripts\activate
```

**macOS**
```bash
python3 -m venv myenv
source myenv/bin/activate
```

### 3. プログラムの実行
```bash
python flag_drawer.py
```

実行後、800x600ピクセルのウィンドウが開き、中央に日本国旗の赤い円が描画されます。
ウィンドウをクリックすると終了します。

## 技術的特徴
* **オブジェクト指向設計** FlagDrawerクラスによる機能の整理
* **座標計算** 数学的な比率計算による正確な配置
* **グラフィックス制御** Turtle/Screenオブジェクトの適切な管理
* **標準ライブラリ活用** 外部依存なしの軽量実装

## 開発者
YuYu

プロジェクトのコミット・プッシュ

プロジェクトの全ての変更をGitHubに反映させましょう。

変更のステージングとコミット

  1. VSCodeの左側のアクティビティバーからソース管理アイコンをクリックします
  2. 変更内容セクションで、すべての変更ファイルを確認します
  3. 各ファイルの横にある「+」アイコンをクリックしてステージングします
  4. コミットメッセージ入力欄に「Add Japanese flag drawing system with Turtle Graphics」と入力します
  5. コミット」ボタンをクリックします

GitHubへのプッシュ

  1. コミット完了後、「変更の同期」または「プッシュ」ボタンをクリックします
  2. 初回の場合、GitHub認証が求められる場合があります
  3. 認証完了後、ローカルの変更がGitHubリポジトリに反映されます

GitHubでの確認

プロジェクトが正常にアップロードされたか確認しましょう。

  1. ブラウザでGitHubリポジトリページを開きます
  2. 以下のファイルが正しくアップロードされていることを確認します
  • flag_drawer.py (メインプログラムファイル)
  • requirements.txt (依存関係管理ファイル)
  • README.md (更新されたプロジェクト説明書)
  • .gitignore (更新された除外設定ファイル)
  1. README.mdが適切に表示され、プロジェクトの説明が読みやすく表示されていることを確認します
  2. ファイル一覧にmyenv/フォルダやpycache/フォルダが含まれていないことを確認します(.gitignoreで除外されているため)

これで本格的な日本国旗描画システムが完成し、GitHubでのポートフォリオ公開も完了しました。作成したプロジェクトは、就職活動や案件獲得時の実績として活用できる実用的なシステムとなっています。

まとめ

このプロジェクトを通じて、PythonのTurtle Graphicsを使用した2Dグラフィックス描画の基礎から実践的な応用まで幅広く学習することができました。

得られたスキル

  • Turtle Graphics – 2Dグラフィックス描画とオブジェクト制御
  • 座標系プログラミング – 数学的座標計算と図形配置
  • 図形描画技術 – circle()関数による正確な円形描画
  • 色彩管理 – カラーコードと塗りつぶし処理

得られた経験

  • グラフィックスプログラミングの基礎体験
  • オブジェクト指向設計によるクラス開発
  • 数学的比率計算を用いた正確な図形描画
  • ユーザーインタラクション機能の実装
  • GitHubを使用したバージョン管理の実践的経験

得られた成果物

  • 完全に動作する日本国旗描画システム
  • GitHubでのポートフォリオとして活用可能なプロジェクト
  • 完全なPythonソースコード

次に学ぶべきこと

  • 複数の図形を組み合わせた複雑な描画
  • アニメーション機能の追加
  • 他国の国旗描画への応用
  • カラーパレット機能の実装
  • キーボード入力による図形切り替え機能

このプロジェクトから応用できること

  • 教育向けプログラミング教材の作成による教育関連案件
  • 幾何学図形描画ツールの開発
  • ロゴ作成システムの構築
  • 簡単なゲーム開発への応用
  • 子供向けプログラミング教室での教材活用
  • 図形学習アプリの開発による教育アプリ案件

このTurtle Graphics技術を基盤として、教育分野や視覚的なプレゼンテーション分野での自動化ニーズに対応できるサービスを開発することが可能です。特に、プログラミング教育や図形学習が必要な分野では、高い価値を提供できる技術として活用できます。

この記事が気に入ったら
フォローしてね!

この記事が参考になった方はシェアしてね!
  • URLをコピーしました!

本コンテンツへの意見や質問

コメントする

目次