summaryrefslogtreecommitdiff
path: root/sample/rcs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'sample/rcs.rb')
-rw-r--r--sample/rcs.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/sample/rcs.rb b/sample/rcs.rb
new file mode 100644
index 0000000000..faa4606788
--- /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
+
+
+
+
+
+
+
+
+
+
+