PythonでペンタゴナルコーンのSVGを生成する方法 | スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

Pythonを使ってSVG形式のペンタゴナルコーン(五角錐)を正確に描画したいと考えたことはありませんか? 本記事では、Pythonsvgwriteライブラリを活用して、美しく正確なペンタゴナルコーンを生成する方法を詳しく解説します。

PythonでペンタゴナルコーンのSVGを生成する方法

ペンタゴナルコーンは少し前で月刊ムーでも別の意味で話題になりましたね。

Pythonは、SVGファイルの生成に適したプログラミング言語の一つです。 2Dベクターグラフィックスを作成できるsvgwriteライブラリを使用することで、幾何学的に正確な図形を描画できます。

この記事では、以下の内容をカバーします。

  • ペンタゴナルコーンの基本構造

  • svgwriteを使用したSVGファイルの作成

  • コードの詳細な説明

  • 色の設定や半透明化の方法

  • 最終的な出力結果

それでは、さっそくペンタゴナルコーンの描画に取り掛かりましょう!

ペンタゴナルコーンとは?

ペンタゴナルコーンとは、底面が正五角形の円錐形の立体のことです。 この形状を描画するには、

  1. 底面の正五角形

  2. 頂点(コーンの先端)

  3. 五角形の各頂点と頂点を結ぶ側面の三角形 を正確に描画する必要があります。

Pythonの数学関数を使って、五角形の頂点を計算し、それをSVG形式で描画していきます。

Pythonコードでペンタゴナルコーンを描画

まず、必要なライブラリsvgwriteをインストールします。

pip install svgwrite

次に、実際にPythonコードを作成します。 以下のコードでは、

  • 五角形の座標を計算

  • コーンの頂点を設定

  • 五角形と頂点を結ぶ側面の三角形を描画

  • 半透明の色を適用 を行っています。

import svgwrite
import math

def generate_pentagonal_cone_svg(filename="pentagonal_cone.svg", size=300, height=150):
    dwg = svgwrite.Drawing(filename, profile='tiny', size=(size, size))
    center = (size / 2, size / 2 + 50)
    radius = size / 4  # 五角形の外接円の半径
    top_point = (center[0], center[1] - height)  # コーンの頂点
    
    # パステルカラーのリスト(底面は透明)
    pastel_colors = ["none", "#FFDAB9", "#B0E0E6", "#98FB98", "#E6E6FA"]
    
    # 正五角形の頂点を計算
    pentagon_points = [
        (
            center[0] + radius * math.cos(2 * math.pi * i / 5 - math.pi / 2),
            center[1] + radius * math.sin(2 * math.pi * i / 5 - math.pi / 2)
        )
        for i in range(5)
    ]
    
    # 底面の五角形を描画
    dwg.add(dwg.polygon(points=pentagon_points, fill=pastel_colors[0], stroke='black', fill_opacity=0.5))
    
    # コーンの側面を描画
    for i, point in enumerate(pentagon_points):
        dwg.add(dwg.polygon(points=[point, pentagon_points[(i + 1) % 5], top_point],
                            fill=pastel_colors[(i + 1) % 5], stroke='black', fill_opacity=0.5))
    
    dwg.save()

# SVGを生成
generate_pentagonal_cone_svg()

コードの解説

1. svgwrite.Drawing() でSVGの作成

svgwrite.Drawing() を使ってSVGファイルを作成し、キャンバスのサイズを設定します。

2. 五角形の頂点を計算

math.cos()math.sin() を使い、五角形の各頂点の座標を計算します。

3. 底面の描画

dwg.polygon() を使って、底面の五角形を描画します。

4. 側面の三角形の描画

dwg.polygon() を用いて、五角形の各頂点からコーンの頂点へつなぐ三角形を描画します。

5. 半透明の色を適用

fill_opacity=0.5 を指定することで、ペンタゴナルコーン全体を半透明にしています。

出力結果

このコードを実行すると、pentagonal_cone.svg というファイルが生成されます。 SVGビューアやブラウザで開くと、美しいペンタゴナルコーンが表示されるはずです。

PythonでペンタゴナルコーンのSVGを生成する方法

まとめ

本記事では、Pythonを使ってペンタゴナルコーン(五角錐)を正確に描画する方法を解説しました。 svgwrite ライブラリを活用すれば、数行のコードで幾何学的に正確なSVGファイルを作成できます。

特に、

  • math を使った五角形の座標計算

  • svgwritepolygon() を利用した図形描画

  • fill_opacity を使った半透明効果 といったテクニックがポイントでした。

今後、他の形状やアニメーションを追加してカスタマイズしてみるのも面白いでしょう。