|
!なぜ、こうなるのか?
OPTION ARITHMETIC NATIVE
OPTION BASE 0
DIM D8(500,500)
!
SET VIEWPORT 0, 0.4, 0.6, 1
CALL sample(DX$,DY$)
LET DX=VAL(DX$)
LET DY=VAL(DY$)
MAT D8=ZER(DX,DY)
!
SET VIEWPORT 0, 1, 0, 1
SET WINDOW 0, 500, 500, 0
!
! SET COLOR MODE "NATIVE" ! ←これを入れると正常にコピーされる。
!
ASK PIXEL ARRAY (0,0) D8
MAT PLOT CELLS,IN 250,250; 450,450: D8
!
!main00
! (
! )
END
EXTERNAL SUB sample(DX$,DY$)
! マンデルブロー(Complex\mandelbm.bas の着色改変)
OPTION ARITHMETIC COMPLEX
SET COLOR MODE "REGULAR"
SET POINT STYLE 1
FOR n=0 TO 50
SET COLOR MIX( n) 0 ,0 ,n/51 !BLACK =< < BLUE
SET COLOR MIX( 51+n) 0 ,n/51 ,1 !BLUE =< < CYAN
SET COLOR MIX(102+n) 0 ,1 ,1-n/51 !CYAN =< < GREEN
SET COLOR MIX(153+n) n/51,1 ,0 !GREEN =< < YELLOW
SET COLOR MIX(204+n) 1 ,1-n/51,0 !YELLOW =< < RED
NEXT n
LET XL=-2
LET XR=.8
LET w1=XR-XL
LET w2=w1/2
SET WINDOW XL, XR,-w2,w2
ASK PIXEL SIZE(XL,-w2; XR,w2) px,py
!
FOR x=XL TO XR STEP w1/(px-1)
FOR y=-w2-.49*w1/(py-1) TO w2 STEP w1/(py-1) !故意に(x,0)を描点の間に挟む。
LET z=0
FOR n=1 TO 255
LET z=z^2+COMPLEX(x,y)
IF 2< ABS(z) THEN
IF n< 64 THEN SET POINT COLOR n*4 ELSE SET POINT COLOR 255
PLOT POINTS :x,y !上下の対象プロットをしない。
EXIT FOR
END IF
NEXT n
NEXT y
NEXT x
LET DX$=STR$(px-1)
LET DY$=STR$(py-1)
END SUB
!※色指標まで、複素数になるのでしょうか。
|
|