mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 65a5162550
			
		
	
	
		65a5162550
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			865 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			865 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # random dot steraogram
 | |
| # usage: rcs.rb rcs.dat
 | |
| 
 | |
| sw = 40.0	# width of original pattern
 | |
| dw = 78.0	# width of generating Random Character Streogram
 | |
| hdw = dw / 2.0
 | |
| w = 20.0	# distance between eyes
 | |
| h =1.0		# distance from screen and base plane
 | |
| d = 0.2		# z value unit
 | |
| 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
 | |
|       
 | |
|   
 | |
|     
 | |
|   
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|   
 | |
|   
 | |
|   
 |