Maurer Rose

 投稿者:しばっち  投稿日:2015年10月28日(水)22時27分25秒
 
!'Maurer Rose
SET WINDOW -1,1,-1,1
RESTORE 1
READ N,D
1 DATA 4,119
2 DATA 6,71
3 DATA 3,29
4 DATA 3,41
5 DATA 3,61
6 DATA 3,131
7 DATA 3,149
8 DATA 4,13
9 DATA 4,31
10 DATA 4,41
11 DATA 4,71
12 DATA 4,83
13 DATA 4,101
14 DATA 4,149
15 DATA 5,31
16 DATA 5,83
   FOR I=1 TO 360
      LET T=T+D
      LET R=SIN(N*RAD(T))
      LET X=R*COS(RAD(T))
      LET Y=R*SIN(RAD(T))
      PLOT LINES:X,Y;
   NEXT I
END
 

世界が広がる

 投稿者:GAI  投稿日:2015年11月 1日(日)12時06分11秒
  > No.3939[元記事へ]

しばっちさんへのお返事です。

Mathworld のいろいろな知らない世界をプログラムにしてもらって、とても勉強になります。
これからもこのシリーズを続けてもらえるととてもありがたいのでよろしくお願いします。
はどの様にプログラムに組めるのか教えて下さい。
 

Re: 世界が広がる

 投稿者:しばっち  投稿日:2015年11月 1日(日)17時51分15秒
  > No.3941[元記事へ]

GAIさんへのお返事です。

> はどの様にプログラムに組めるのか教えて下さい。

既に「String Rewriting System」の中で
データ文4行に"Haferman Carpet"を定義していますので
RESTORE文を4行に変更してください。
#3912

!'String Rewriting System
INPUT  PROMPT "LEVEL=":LEV !' (1<=LEV<=5)
DIM A(3^LEV,3^LEV),B(3^LEV,3^LEV),P(3,3),Q(3,3)
RESTORE 4  !'<-----ここを4行に変更
READ A(1,1) !'初期値
MAT READ P,Q

4 DATA 1   !'Haferman Carpet
   DATA 1,1,1
   DATA 1,1,1
   DATA 1,1,1
   !'
   DATA 0,1,0
   DATA 1,0,1
   DATA 0,1,0

初期値が間違っていました。上記のDATA分にあわせてください。
推測で判断していたのですみません。

> Mathworld のいろいろな知らない世界をプログラムにしてもらって、とても勉強になります。
> これからもこのシリーズを続けてもらえるととてもありがたいのでよろしくお願いします。

これは私が、このサイトを見て理解し、BASIC上にて再現できるものと判断したものです。
また、再現できたとしても、その一部分に過ぎません。(再現できていると言えないものもありますが...)

サイト内が英文ということもあり、理解できないもの、再現できそうにないものも多く、
私も趣味の範囲でやっているだけなので、残念ながら少し難しいと思います。

 

Re: 世界が広がる

 投稿者:白石 和夫  投稿日:2015年11月 2日(月)18時33分8秒
  > No.3941[元記事へ]

定義に忠実にHaferman Carpetを描きます。

100 REM Haferman Carpet
120 DIM h0(3,3),h1(3,3)
130 DATA 1,1,1
140 DATA 1,1,1
150 DATA 1,1,1
160 MAT READ h0
170 DATA 0,1,0
180 DATA 1,0,1
190 DATA 0,1,0
200 MAT READ h1
210 LET n=5
220 SET bitmap SIZE 3^n, 3^n
230 SET WINDOW 0,3^n-1, 0,3^n-1
240 MAT PLOT CELLS, IN 0,0; 3^n-1,3^n-1: h0
250 FOR k=n TO 1 STEP -1
260    PAUSE
270    LET s=3^k
280    FOR a=0 TO 3^n-s STEP s
290       FOR b=0 TO 3^n-s STEP s
300          ASK PIXEL VALUE(a, b) p
310          IF p=0 THEN
320             MAT PLOT CELLS, IN a,b;a+s-1,b+s-1: h0
330          ELSE
340             MAT PLOT CELLS, IN a,b;a+s-1,b+s-1: h1
350          END IF
360       NEXT b
370    NEXT a
380 NEXT k
390 END

 

戻る