ブッダブロ画像は点(CX,CY)を新たに選ぶ場合、乱数を使用していたが、乱数は使わず、画像表示画面の全てを順次選ぶ場合の画像を調べてみる。
****
表示ガウス画面の座標(X,iY)を|X|<=2,|Y|<=2とする。
X,Yをパラメータ K,Jで表し、X=Xs+dX*K,Y=Ys=dY*J とし、dX=dY=4/480,K=0~480 step1,J=0~480 step 1とする。
画像作成での始点:Z(X,Y)をZ(K,J)として、K=0→480,J=0→480 全てについて順次与えて画像を作成していく。画像作成手順は、始点Zの与え方以外は全て同じである。但し、巡回ループの最大値は500としている。
****
また、同一点の重なりの回数(以下、濃度:mと表現する)は色で表現する。
(BASIC/98では、mを同一色のグラディエーションでは表現できず、最大16色の色でしか表せない。)
下図は、ブッダブロ画像において、J=480/2の場合のK=0→480でのmの分布を調べたグラフである。m の最大値は13となっている。
下図は、この方法で求めたブッダブロの生(なま)の画像である。但し、周囲の部分は省略し肝心の部分のみ示した。
C=m MOD 16 としているが、m の最大値は13だから、C=mとしてみてよい。
この図から分かるように、ブッダブロ画像のmの分布は混在しており、明確な規則性はない(これは、色が混在しており不鮮明であることから分かる)。
(訂正:下図の画像の縦軸は、-1cm~1cm,横軸は、-1.5cm~0.5cmである)
上の画像は生(なま)データを直接表示したものであるが、画像の色(即ち m )を整理する方法として、log(m)化がある。以下の画像は、log(m)にして、不要な m を未表示にした画像である。画像表示の具体的な方法は各画像に書いてある。
これらの画像は、いわゆるブッダブロ画像と似ている。尚、下図の画像は、色のみ変えており画像の形態は同じである。
-------------------------------------------------------
参考のために上の画像のBASIC/98プログラムを下記しておく。
画像作成プログラム(BASIC/98)
10 REM ブッダブローFILE NAME→ KL
20 REM CX,CY→K,L
60 CHAIN MERGE "C:\BASIC1\PRO\SUBR\KOSHIKI.BAS",90,ALL
90 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER2.BAS",100,ALL
100 ON ERROR GOTO 50000
110 CONSOLE ,,0,1
120 COLOR 0,7,,,2
130 CLS 3
140 GOSUB 10000
180 CXS=-2 :CXE=2 :DX=(CXE-CXS)/480
190 CYS=-2 :CYE=2 :DY=(CYE-CYS)/480
200 DIM Z(480,480):DIM SX(10000):DIM SY(10000)
202 FOR J=0 TO 480
204 FOR K=0 TO 480
206 Z(K,J)=0
208 NEXT K
210 NEXT J
220 K=0:J=0:N=1:L=0
228 '
232 REM Jの値
240 LOCATE 0,0:PRINT J
250 CY=CYS+DY*J
260 REM Kの値
262 LOCATE 0,1:PRINT K
264 CX=CXS+DX*K
270 X=0:Y=0
288 REM
290 XX=FNR2(X,Y)+CX
300 Y=FNI2(X,Y)+CY
310 X=XX
320 Q=X^2+Y^2
324 IF Q>4 THEN 1000
330 SX(L)=X :SY(L)=Y
334 L=L+1
340 IF N=500 THEN 341 ELSE N=N+1:GOTO 288
341 N=0
350 REM J,Kの値の判定
360 IF K=480 THEN 400 ELSE 370
370 K=K+1
380 L=0: GOTO 260
400 IF J=480 THEN 1500 ELSE 410
410 K=0:J=J+1
420 L=0: GOTO 232
1000 REM X→SX(L),Y→SY(L)の読み込み
1420 FOR LL=0 TO L
1422 X=SX(LL):Y=SY(LL)
1444 KK1=(X+2)/DX : JJ1=(Y+2)/DY
1446 K1=INT(KK1) : J1=INT(JJ1)
1448 IF K1 1449 IF K1>480 OR J1>480 THEN 1460
1450 Z(K1,J1)=Z(K1,J1)+1
1454 C=N MOD 16
1457 PSET (K1,J1),C
1460 NEXT LL
1462 L=0:N=0
1464 GOTO 350
1500 REM ZZ=Z(K1,J1) の書き込み
1502 OPEN "C:\BASIC1\TEST\DATAb.DAT" FOR OUTPUT AS #1
1504 FOR JJJ=0 TO 480
1506 FOR KKK=0 TO 480
1508 WRITE #1,JJJ,KKK,Z(KKK,JJJ)
1510 NEXT KKK
1512 NEXT JJJ
1514 CLOSE #1
1600 END
-----------------------------------
log(m)画像の表示プログラム(BASIC/98)
10 REM ブッダブロ表示(K,J,Zmax)デタの表示
12 REM Zmax値による色の区別はサブルーチン(1000行)で決める
30 CONSOLE ,,0,1
40 COLOR 0,7,,,2
50 CLS 3
51 CHAIN MERGE "C:\BASIC1\PRO\SUBR\COLOR左下表示.BAS",55,ALL
55 OPEN "C:\BASIC1\TEST\DATAb.DAT" FOR INPUT AS #1
60 INPUT #1,K,J,Z
62 LOCATE 0,0:PRINT USING "###";J
64 LOCATE 0,1:PRINT USING "###";K
70 IF EOF(1) THEN 120
72 '
74 '
80 REM Zによる色の区別:サブルーチン
90 GOSUB 500
100 PSET (K,J),C
110 GOTO 60
120 CLOSE #1
130 GOTO 600
500 REM Zによる色の区別
510 IF Z 520 CCC=LOG(Z)
522 IF CCC>2 AND CCC 524 C=CCC:GOTO 540
526 CC=LOG(Z)
528 IF CC>=2.5 THEN C=CC+5 ELSE C=7
540 RETURN
600 GOSUB 3000
610 END
最新の画像[もっと見る]
- 686 Z^2+0.5:Q=1/(sinXsinY)画像及び拡大画像 10年前
- 686 Z^2+0.5:Q=1/(sinXsinY)画像及び拡大画像 10年前
- 686 Z^2+0.5:Q=1/(sinXsinY)画像及び拡大画像 10年前
- 686 Z^2+0.5:Q=1/(sinXsinY)画像及び拡大画像 10年前
- 686 Z^2+0.5:Q=1/(sinXsinY)画像及び拡大画像 10年前
- 685 Z^2+0.5:Q=1/(sinXsinY)画像 10年前
- 685 Z^2+0.5:Q=1/(sinXsinY)画像 10年前
- 685 Z^2+0.5:Q=1/(sinXsinY)画像 10年前
- 684 (sinhZ)^(e^Z))+0.5画像及び拡大図 10年前
- 684 (sinhZ)^(e^Z))+0.5画像及び拡大図 10年前