はじめに
このチュートリアルでは、Python の Matplotlib ライブラリを使ってベジェ曲線を作成する方法を学びます。ベジェ曲線は、コンピュータグラフィックスで一般的に使用され、滑らかで美しい形状を作成するための数学的曲線です。Matplotlib のPathPatchオブジェクトを使って、ベジェ曲線の簡単な例を作成します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
Matplotlib を使ってベジェ曲線を作成するには、必要なライブラリをインポートする必要があります。グラフを作成するためにmatplotlib.pyplotと、PathPatchオブジェクトを作成するためにmatplotlib.patchesをインポートします。
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath
パスの作成
次に、ベジェ曲線用のPathオブジェクトを作成します。Pathオブジェクトは、頂点のリストと、頂点間のパスの種類を指定するコードを受け取ります。この場合、始点に移動するためにMOVETOコードを使用し、次に制御点と終点を指定する 2 つのCURVE3コードを使用し、最後にパスを閉じるためにCLOSEPOLYコードを使用します。
Path = mpath.Path
bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
[Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])
PathPatch オブジェクトの作成
Pathオブジェクトができたので、これを使ってグラフ上にベジェ曲線を描画するためのPathPatchオブジェクトを作成できます。塗りつぶされるのではなく、曲線のみを描画するようにfacecolorを'none'に設定します。
bezier_patch = mpatches.PathPatch(bezier_path, fc="none")
グラフの作成
これで、PathPatchオブジェクトを軸に追加し、曲線上にあるはずの赤い点をプロットすることでグラフを作成できます。また、グラフのタイトルを'Bezier Curve'に設定します。
fig, ax = plt.subplots()
ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')
plt.show()
最終的なコードはこのようになります。
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath
Path = mpath.Path
bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
[Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])
bezier_patch = mpatches.PathPatch(bezier_path, fc="none")
fig, ax = plt.subplots()
ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')
plt.show()
まとめ
このチュートリアルでは、Python の Matplotlib ライブラリを使ってベジェ曲線を作成する方法を学びました。曲線を作成するためにPathとPathPatchオブジェクトを使用し、グラフに追加しました。また、曲線上に赤い点をプロットして、それが曲線上にあることを示しました。ベジェ曲線は、コンピュータグラフィックスで平滑で美しい形状を作成するために一般的に使用されます。