タペストリーのグラフ

 投稿者:SECOND  投稿日:2014年10月24日(金)21時25分6秒
 
!タペストリーのグラフ

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
 

戻る