アスキーアート(数字と英小文字だけ)でマンデルブロ集合を描くとなぜか黒しか使ってないのに色が見える! (Excel VBAで計算)
このTweetみた。
Mathematics, computer programming.
— Cliff Pickover (@pickover) August 22, 2021
Mandelbrot Set in ASCII art.
An entire universe computed in 15 lines of code.
(I've magnified a portion, in the hopes you can see the characters of which the image is composed.) Full image and code, here: https://t.co/Yoo6E83dBN pic.twitter.com/CAoqtq4z2D
おお、これは昔、ラインプリンタでマンデルブロ集合(そのときは”*”のみ)を描いたのの拡張だな、、、
ということで早速やってみた。Pythonでもなんでもいいが、Excelをたまたま立ち上げていたのでExcel VBAで描いてみよう。
ソースはこちら。
Option Explicit
Option Base 0
Private Sub CommandButton1_Click()
Dim ix As Integer, iy As Integer, count As Integer, i As Integer
Dim size As Integer, limit As Integer
Dim letters(100) As String
Dim cx As Double, cy As Double
Dim x As Double, y As Double, x1 As Double, y1 As Double
Dim s As String
Application.ScreenUpdating = False '画面描画を停止
Application.Cursor = xlWait 'ウエイトカーソル
Application.EnableEvents = False 'イベントを抑止
Application.DisplayAlerts = False '確認メッセージを抑止
Application.Calculation = xlCalculationManual '計算を手動に
size = 400
limit = 1000
letters(0) = " "
For i = 1 To 9
letters(i) = Chr(48 + i)
Next i
For i = 10 To 10 + 26 - 1
letters(i) = Chr(87 + i)
Next i
letters(36) = "*"
For iy = 0 To size
s = ""
For ix = 0 To 3 * size
count = 0
cx = -2 + CDbl(ix) * 3.5 / CDbl(3 * size)
cy = 1.5 - CDbl(iy) * 3 / CDbl(size)
x = 0#
y = 0#
Do While (x * x + y * y) < 4 And count < limit
x1 = x
y1 = y
x = x1 ^ 2 - y1 ^ 2 + cx
y = 2# * x1 * y1 + cy
count = count + 1
Loop
If count >= limit Then
s = s + letters(0)
Else
If count >= 36 Then
s = s + letters(36)
Else
s = s + letters(count)
End If
End If
Next ix
Worksheets("mandel").Cells(iy + 1, 1) = s
Next iy
Application.StatusBar = False 'ステータスバーを消す
Application.Calculation = xlCalculationAutomatic '計算を自動に
Application.DisplayAlerts = True '確認メッセージを開始
Application.EnableEvents = True 'イベントを開始
Application.Cursor = xlDefault '標準カーソル
Application.ScreenUpdating = True '画面描画を開始
End Sub
やってみると?
確かに文字しかないのに、、、
あれ!色が見える!私だけ?
不思議!心理的な効果なのか、ディスプレイの色のにじみ的なものなのか、、、知ってる方がいたら教えてください。
« やよい軒で木須肉と鶏チリの定食を食す。 | トップページ | すき家でアボカドユッケサーモン丼(ご飯大盛)を食す。案外合ってる。 »
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年3月28日 Next G Allianceが6Gに向けたコンポーネント技術を策定、Ericssonのパッシブアンテナで5G効率化、u-bloxがソフトバンクと協業で日本にPointPerfect GNSS補正を拡大、中国以外の国は6Gに無関心になってきたという記事(2025.03.28)
- パンサー尾形さんのNHK 笑わない数学スペシャル ホッジ予想を見てメモ。オイラー数、デカルト座標、ポアンカレのベッチ数、ネーターのコホモロジー、たくさん見つかるコホモロジー、グロタンディークのモチーフ、そしてドリーニュさんのインタビューという構成でした。(2025.03.27)
- 高周波・RFニュース 2025年3月27日 Qualcommが3GPP 6Gワークショップで議論された内容を紹介、Broadcomが00G/lane DSP PHYチップ発表、DreiとEricssonが5GのWバンド(92~115 GHz )テスト中、Siversが高性能レーザでWINセミコンダクタと提携、Semtechの50G PON(2025.03.27)
- Google ColabのJulia言語でDifferentialEquationsパッケージを使ってピタゴラスの三体問題を35段14次ルンゲクッタFeagen法で計算し、Colab上でGIFアニメにしてみた。dtminを小さくしないと途中で止まってしまうことにハマった…(2025.03.27)
- 高周波・RFニュース 2025年3月26日 ルネサスが車載Bluetooth Soc発表、QorvoがUltra-Wideband(UWB)レーダについて解説、VNPTがQualcommの XGS-PONとWi-Fi 7ソリューション採用、SpirentのAIインフラのテストレポート(2025.03.26)
« やよい軒で木須肉と鶏チリの定食を食す。 | トップページ | すき家でアボカドユッケサーモン丼(ご飯大盛)を食す。案外合ってる。 »
コメント