
Twitter(現X)のタイムラインに様々なマンデルブロ集合が流れてくることがあります。 自分では電子工作でやったことがなかったので、ESP32-C3で描画してみました。 お遊びアプリとして万華鏡のように、ずーっと(ぼーっと)楽しめます。
1回の拡大操作で拡大レベルが1上がります。1レベル上がるごとに解像度は4倍になります。
マンデルブロ集合の理論上、拡大レベルに上限はありませんが、プログラム上はfloat型の制約からレベル10以上は描画が粗くなります。
レベル10で解像度は4^10倍(約100万倍)となり、このあたりで集合領域の区間がfloat型の精度では表現できなくなるからです。
※集合領域の縦横の長さ(+Reと-Reの差、+Imと-Imの差)が計算上、0となってしまう。
| ESP32-C3 | 部品 |
|---|---|
| GPIO_NUM_10 (SPI-SS) | LCD-CS |
| GPIO_NUM_7 (SPI-MOSI) | LCD-SDA |
| GPIO_NUM_6 (SPI-SCK) | LCD-SCL |
| GPIO_NUM_4 | LCD-DC |
| GPIO_NUM_1 | SWITCH-A |
| GPIO_NUM_3 | SWITCH-B |
GitHub - ESP32-C3 マンデルブロ集合
スマホで撮影した画像です。後ろ4枚は拡大レベル、中心座標、集合領域の区間といった情報が、描画更新の都度、表示されている様子が分かります。
また、開発最初期にはテキスト版を実装しました。


綺麗ですね。ちょっと作ってみようで、作っている最中も作った後も楽しめました。 画像保存や高速化は考えていません。気軽に試せたのでヨシ!です。