はじめに
前回の記事では、マンデルブロ集合を描画して 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
