summaryrefslogtreecommitdiff
path: root/sample/rcs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'sample/rcs.rb')
-rw-r--r--sample/rcs.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/sample/rcs.rb b/sample/rcs.rb
new file mode 100644
index 0000000..b147429
--- /dev/null
+++ b/sample/rcs.rb
@@ -0,0 +1,42 @@
+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)
+ c = if (0 < i < $_.length); $_[i, 1].to_i else 0 end
+ y = h - d * c
+ xl = xr - w * y / (1 + y);
+ if xl < -hdw || xl >= hdw || xl <= maxxl
+ t = rand(ss.length)
+ c = ss[t, 1]
+ else
+ c = s[xl + hdw, 1]
+ maxxl = xl
+ end
+ s = s + c
+ xr = xr + 1
+ end
+ print(s, "\n")
+end
+
+
+
+
+
+
+
+
+
+
+