diff options
Diffstat (limited to 'sample/rcs.rb')
-rw-r--r-- | sample/rcs.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/sample/rcs.rb b/sample/rcs.rb new file mode 100644 index 0000000000..3f74da9ef2 --- /dev/null +++ b/sample/rcs.rb @@ -0,0 +1,49 @@ +# random dot steraogram +# usage: rcs.rb rcs.dat + +sw = 40.0 # 元のパターンの幅 +dw = 78.0 # 生成される Random Character Streogram の幅 +hdw = dw / 2.0 +w = 20.0 # 両眼の幅 +h =1.0 # 画面と基準面の距離 +d = 0.2 # 単位当たりの浮き上がり方 +ss="abcdefghijklmnopqrstuvwxyz0123456789#!$%^&*()-=\\[];'`,./" +rnd = srand() + +while gets() +# print($_) + xr = -hdw; y = h * 1.0; maxxl = -999 + s = ""; + while xr < hdw + x = xr * (1 + y) - y * w / 2 + i = (x / (1 + h) + sw / 2) + if (1 < i && i < $_.length); + c = $_[i, 1].to_i + else + c = 0 + end + y = h - d * c + xl = xr - w * y / (1 + y); + if xl < -hdw || xl >= hdw || xl <= maxxl + tt = rand(ss.length) + c = ss[tt, 1] + else + c = s[xl + hdw, 1] + maxxl = xl + end + s += c + xr += 1 + end + print(s, "\n") +end + + + + + + + + + + + |