Pythonを使ってSVG形式のペンタゴナルコーン(五角錐)を正確に描画したいと考えたことはありませんか? 本記事では、Pythonのsvgwriteライブラリを活用して、美しく正確なペンタゴナルコーンを生成する方法を詳しく解説します。
ペンタゴナルコーンは少し前で月刊ムーでも別の意味で話題になりましたね。
Pythonは、SVGファイルの生成に適したプログラミング言語の一つです。 2Dベクターグラフィックスを作成できるsvgwriteライブラリを使用することで、幾何学的に正確な図形を描画できます。
この記事では、以下の内容をカバーします。
-
ペンタゴナルコーンの基本構造
-
svgwriteを使用したSVGファイルの作成 -
コードの詳細な説明
-
色の設定や半透明化の方法
-
最終的な出力結果
それでは、さっそくペンタゴナルコーンの描画に取り掛かりましょう!
ペンタゴナルコーンとは?
ペンタゴナルコーンとは、底面が正五角形の円錐形の立体のことです。 この形状を描画するには、
-
底面の正五角形
-
頂点(コーンの先端)
-
五角形の各頂点と頂点を結ぶ側面の三角形 を正確に描画する必要があります。
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を使ってペンタゴナルコーン(五角錐)を正確に描画する方法を解説しました。 svgwrite ライブラリを活用すれば、数行のコードで幾何学的に正確なSVGファイルを作成できます。
特に、
-
mathを使った五角形の座標計算 -
svgwriteのpolygon()を利用した図形描画 -
fill_opacityを使った半透明効果 といったテクニックがポイントでした。
今後、他の形状やアニメーションを追加してカスタマイズしてみるのも面白いでしょう。

