新しく発言する  EXIT  インデックスへ
万華鏡

  万華鏡 ひでき 2007/12/22 19:15:43 
  !ご参考に。 SECOND 2007/12/23 02:54:41 
  │└x軸,y軸に関する対称移動は,それぞれ,SC... 白石 和夫 2007/12/23 10:36:54 
  │ └気が付きませんでした、直します。 SECOND 2007/12/23 17:13:48 
  !ご参考に。こちらが簡単になります。 SECOND 2007/12/23 17:16:58 

Re: 万華鏡  返事を書く  ノートメニュー
SECOND <jjqdmekgpt> 2007/12/23 17:16:58
!ご参考に。こちらが簡単になります。

!簡易万華鏡
!-----
OPTION ARITHMETIC NATIVE
DIM px(8),py(8)

MAT READ px
DATA 0.20, 0.50, 0.80, 0.65, 0.50, 0.35, 0.20, 0.50
MAT READ py
DATA 0.11, 0.11, 0.11, 0.38, 0.65, 0.38, 0.11, 0.11

SET WINDOW -2, 3, -2, 3

PRINT "右クリックで、停止。"
LET s=1
DO
SET DRAW mode hidden
CLEAR
LET s=MOD(s,6)+1
DRAW D3(4)
SET DRAW mode explicit
MOUSE POLL x,y,left,right
WAIT DELAY 0.1
LOOP UNTIL 0<right

!------ ミラー3分岐、再帰描画。
PICTURE D3(k)
IF 0<k THEN
DRAW D3(k-1) WITH SCALE(1,-1) ! 下
DRAW D3(k-1) WITH SCALE(-1,1)*ROTATE(-PI/3) ! 左上
DRAW D3(k-1) WITH SHIFT(-1,0)*SCALE(-1,1)*ROTATE(PI/3)*SHIFT(1,0) ! 右上
DRAW Set01
ELSE
DRAW Set01
END IF
END PICTURE

!------ 中心の三角図1枚
PICTURE Set01
PLOT LINES: 0,0; 1,0 ;0.5,SQR(3)/2 ;0,0
SET AREA COLOR 2
DRAW disk WITH SCALE(0.1)*SHIFT(px(s),py(s)) ! 飾りを置く。
SET AREA COLOR 3
DRAW disk WITH SCALE(0.1)*SHIFT(px(s+1),py(s+1)) ! 飾りを置く。
SET AREA COLOR 4
DRAW disk WITH SCALE(0.1)*SHIFT(px(s+2),py(s+2)) ! 飾りを置く。
END PICTURE

END

  │└ポイントは、再帰呼び出しにあるのですね。 ひでき 2007/12/24 19:56:12 
  │ ├飾る前に、3重書きの不具合がありました。 SECOND 2007/12/24 21:10:09 
  │ ├!少し飾ったものです。(修2) SECOND 2007/12/24 23:45:32  (修正2回)
  │ └厳密の計算ではありませんが、また、対称変... 山中和義 2007/12/25 11:18:13 
  !フラクタル描画で、3重書きの弊害を解消し... SECOND 2007/12/24 21:02:15 
   ├!こちらが見やすい。動きを細かくした。 SECOND 2007/12/25 04:00:25 
   │└シェルピンスキーの三角形ですね。 山中和義 2007/12/25 11:08:08 
   │ ├日増しに訪問者が、減っていくようで寂しい... SECOND 2007/12/25 19:09:12 
   │ └腰を折ってすみません。六角形の方を紹介し... SECOND 2007/12/26 03:06:45 
   │  └!簡易万華鏡(ランダム)※FOR文による6角... 山中和義 2007/12/26 11:26:29 
   └!シルピンスキーのガスケットと並べて動かし... SECOND 2007/12/26 05:27:23  (修正2回)
    └「中を抜いたもの」を、シルピンスキーのガ... SECOND 2007/12/26 09:35:33 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。