|
!タペストリーのグラフ
SET WINDOW -1.5, 1.5, -1.5, 1.5
DIM A(4,4),B(4,4)
!
LET n=8
!------------------------
! /'\. C曲線 左回りのタペストリー
! ──・
SET VIEWPORT 0, .5, .5, 1
MAT A=SCALE(1/SQR(2))*ROTATE( PI/4) !L
MAT B=SCALE(1/SQR(2))*ROTATE(-PI/4)*SHIFT(.5,.5) !L C曲線
CALL tapestry
!------------------------
! ──・ C曲線 右回りのタペストリー
! \./'
SET VIEWPORT .5, 1, .5, 1
MAT A=SCALE(1/SQR(2))*ROTATE(-PI/4) !R
MAT B=SCALE(1/SQR(2))*ROTATE( PI/4)*SHIFT(.5,-.5) !R C曲線
CALL tapestry
!------------------------
! /''\ ドラゴン曲線 左回りのタペストリー
! ──・
SET VIEWPORT 0, .5, 0, .5
MAT A=SCALE(1/SQR(2))*ROTATE( PI/4) !L
MAT B=SCALE(1/SQR(2))*ROTATE( PI/4*3)*SHIFT(1,0) !L ドラゴン
CALL tapestry
!
!------------------------
! ──・ ドラゴン曲線 右回りのタペストリー
! \../
SET VIEWPORT .5, 1, 0, .5
MAT A=SCALE(1/SQR(2))*ROTATE(-PI/4) !R
MAT B=SCALE(1/SQR(2))*ROTATE(-PI/4*3)*SHIFT(1,0) !R ドラゴン
CALL tapestry
!------------------------
SUB tapestry
FOR agl=0 TO 1.51*PI STEP 0.5*PI
DRAW test(n) WITH SHIFT(-0.5, 0.5)*ROTATE(agl)
NEXT agl
END SUB
PICTURE test(k)
IF 0< k THEN
DRAW test(k-1) WITH A
DRAW test(k-1) WITH B
ELSE
PLOT LINES: 0,0;1,0
END IF
END PICTURE
END
|
|