|
くりぬき図形(シェルピンスキーのカーペット)
!'ボクセル表現(VOXEL)
LET L=6^4
INPUT PROMPT "LEVEL =":N !' LEVEL 3で146MB
FILE GETSAVENAME F$,"dxfファイル|*.dxf"
IF F$="" THEN STOP
IF POS(UCASE$(F$),".DXF")=0 THEN LET F$=F$ & ".dxf"
OPEN #1:NAME F$
ERASE #1
PRINT #1:"0"
PRINT #1:"SECTION"
PRINT #1:"2"
PRINT #1:"ENTITIES"
CALL RECURSIVE(N,X,Y,Z,L,#1)
PRINT #1:"0"
PRINT #1:"ENDSEC"
PRINT #1:"0"
PRINT #1:"EOF"
CLOSE #1
END
EXTERNAL SUB RECURSIVE(N,X,Y,Z,L,#1)
IF N=0 THEN
CALL CUBE(#1,X-L/3,Y+L/3,Z+L/3,L/3)
CALL CUBE(#1,X, Y+L/3,Z+L/3,L/3)
CALL CUBE(#1,X+L/3,Y+L/3,Z+L/3,L/3)
CALL CUBE(#1,X-L/3,Y, Z+L/3,L/3)
CALL CUBE(#1,X+L/3,Y, Z+L/3,L/3)
CALL CUBE(#1,X-L/3,Y-L/3,Z+L/3,L/3)
CALL CUBE(#1,X, Y-L/3,Z+L/3,L/3)
CALL CUBE(#1,X+L/3,Y-L/3,Z+L/3,L/3)
CALL CUBE(#1,X-L/3,Y+L/3,Z-L/3,L/3)
CALL CUBE(#1,X, Y+L/3,Z-L/3,L/3)
CALL CUBE(#1,X+L/3,Y+L/3,Z-L/3,L/3)
CALL CUBE(#1,X-L/3,Y, Z-L/3,L/3)
CALL CUBE(#1,X+L/3,Y, Z-L/3,L/3)
CALL CUBE(#1,X-L/3,Y-L/3,Z-L/3,L/3)
CALL CUBE(#1,X, Y-L/3,Z-L/3,L/3)
CALL CUBE(#1,X+L/3,Y-L/3,Z-L/3,L/3)
CALL CUBE(#1,X-L/3,Y+L/3,Z,L/3)
CALL CUBE(#1,X+L/3,Y+L/3,Z,L/3)
CALL CUBE(#1,X-L/3,Y-L/3,Z,L/3)
CALL CUBE(#1,X+L/3,Y-L/3,Z,L/3)
ELSE
CALL RECURSIVE(N-1,X-L/3,Y+L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X, Y+L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y+L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y, Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y, Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y-L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X, Y-L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y-L/3,Z+L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y+L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X, Y+L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y+L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y, Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y, Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y-L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X, Y-L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y-L/3,Z-L/3,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y+L/3,Z,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y+L/3,Z,L/3,#1)
CALL RECURSIVE(N-1,X-L/3,Y-L/3,Z,L/3,#1)
CALL RECURSIVE(N-1,X+L/3,Y-L/3,Z,L/3,#1)
END IF
END SUB
以下省略
EXTERNAL SUB CUBE(#1,X,Y,Z,L)
END SUB
#1630 からコピペしてください
|
|