LoginSignup
6
1

More than 5 years have passed since last update.

シェルピンスキーの三角形を描いてみる

Posted at

イントロ

興味あることをやろうとしていたら、シェルピンスキーの三角形と似た操作が出てきた。
これはこれでおもしろそうなので、参考がてらに軽く触れてみた。

Julia Notebook
https://gist.github.com/Lirimy/02d65e0d7589b7ab6a65dc0c4e22ac0a

シェルピンスキーの三角形の概要
https://en.wikipedia.org/wiki/Sierpinski_triangle

パスカルの三角形

  1. 左上のマスを1にする
  2. 空きマスの値を、左と上の数字の和で求める
  3. 繰り返して全てのマスを埋める
  4. 奇数を白・偶数を黒で塗る
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20

sier-pascal360.png

結局のところ偶奇だけが問題なので、演算は 0/1 に対して XOR をとればよい。
実装上もそうしてある。

セル・オートマトン(ルール90)

  1. 1行目に初期値を与える
  2. 次の行のマスの値を、前の行の近傍3マスから求める
  3. 繰り返す

近傍3マスのうち、実は真ん中のマスは次のマスに影響しない。
影響する両端2マスと出力マスだけに注目すると、 XOR の関係になっている。
よって、パスカルの三角形と同じ仕組みだと言える。

真ん中だけ1で初期化
sier-rule90-360.png

乱数で初期化
sier-rnd-360.png

カオス・ゲーム

  1. 三角形の頂点 (P1, P2, P3) を決める(下図の青丸)
  2. 初期点 S を適当に決める(実装上は内部の点を指定した)
  3. P1, P2, P3 からランダムに1点選び、P とする
  4. S と P の中点を次の点 S にする
  5. 繰り返し S を求める

1000 点プロットした
sier-chaos-15dpi.png

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1