[Python][WSL] マンデルブロ集合をウィンドウに描画

  • 2022年9月17日
  • 2022年9月18日
  • Python
  • 24View
  • 0件

はじめに

前回の記事では、マンデルブロ集合を描画して png ファイルに出力しました。

前回記事 – 【Python】マンデルブロ集合を描画して PNG 出力

今回は WSL Ubuntu にて、マンデルブロ集合をウィンドウに描画します。

マンデルブロ集合をウィンドウ出力

動作環境

  • Windows 11
  • WSL Ubuntu 20.04
  • Python 3.8.10

WSL ディストリビューションの複製

お試しで実行する場合は Ubuntu イメージを複製しておくのがお勧めです。
本手順は必須ではありません。

事前準備

事前準備は前回記事と同じです。

初めに、Ubuntu パッケージを最新化しておきます。

$ sudo apt update
$ sudo apt upgrade

python パッケージをインストールするための pip をインストールします。

$ sudo apt install python3-pip

次に、画像ファイルを扱うために Pillow のパッケージをインストールします。

$ pip install Pillow

ソースコード

前回の記事から1行だけ変更します。
image.save で png 出力している個所を image.show に置き換えます。

import PIL.Image


def is_mandelbrot(c):
    z = 0
    for i in range(200):
        z = z * z + c
        if abs(z) > 4:
            return False
    return True


def run():
    width = 1024
    height = 768
    pitch = 2.5 / height
    image = PIL.Image.new("L", (width, height))
    for w in range(width):
        for h in range(height):
            re = pitch * w - 2.5
            im = pitch * h - 1.25
            c = complex(re, im)
            pixel = 0 if is_mandelbrot(c) else 255
            image.putpixel((w, h), pixel)
    image.show()


if __name__ == "__main__":
    run()

スクリプトの実行

$ python3 main.py とコマンド実行するとスクリプトが実行されますが、ウィンドウが描画されるためには画像を表示できるアプリケーションがインストールされている必要があります。
これがインストールされていないと、image.show が空振りして何も表示されません。

ウィンドウ表示のため、imagemagick をインストールします。
(ほかに gimp などでも表示可能です)

$ sudo apt install imagemagick

インストール完了後に、スクリプトを実行するとマンデルブロ集合がウィンドウに出力されます。

$ python3 main.py