LoginSignup
4
4

More than 5 years have passed since last update.

「プログラムでシダを描画する」をPostScriptで描画する

Last updated at Posted at 2014-06-28

空前のシダ描画ブーム到来!?(^^;)
あなたも得意なプログラミング言語でシダを描画してみよう!

これまでの一覧

僕もやりたくなった。
まだ誰もやってない言語で僕の書けるものとしてPostScriptでやってみた。

コード

sida.ps
%!PS-Adobe-3.0
2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice
/drand {rand 2 31 exp div} def
/plotadot {842 mul exch 595 mul 595 add exch moveto 1 1 rlineto stroke} def
/W1x {0.044 mul exch 0.836 mul add} def
/W1y {0.836 mul exch -0.044 mul add 0.169 add} def
/W2x {0.302 mul exch -0.141 mul add} def
/W2y {0.141 mul exch 0.302 mul add 0.127 add} def
/W3x {-0.302 mul exch 0.141 mul add} def
/W3y {0.141 mul exch 0.302 mul add 0.169 add} def
/W4x {pop pop 0} def
/W4y {0.175337 mul exch 0 mul add} def
/f1 {2 copy W1x 3 1 roll W1y} def
/f2 {2 copy W2x 3 1 roll W2y} def
/f3 {2 copy W3x 3 1 roll W3y} def
/f4 {2 copy W4x 3 1 roll W4y} def
/fp{
    dup 0 gt
    {
    drand 0.3 le{3 copy 3 1 roll f2 3 2 roll 1 sub fp}if
    drand 0.3 le{3 copy 3 1 roll f3 3 2 roll 1 sub fp}if
    drand 0.3 le{3 copy 3 1 roll f4 3 2 roll 1 sub fp}if
    3 1 roll f1 3 2 roll 1 sub fp
    }
    {pop exch 0.5 sub exch plotadot}
    ifelse
}def
0 0 20 fp
showpage

実行結果

GhostscriptでPNGに変換したもの。
sida.png

4
4
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
4
4