summaryrefslogtreecommitdiff
path: root/sample/rcs.rb
blob: 0ed4a36c1ee547ef7d73058263db03c38f451ecd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 = s + c
    xr = xr + 1
  end
  print(s, "\n")
end