bla initial
This commit is contained in:
parent
4db4d71b6c
commit
55b43542e3
1 changed files with 178 additions and 0 deletions
178
causal/causal.rb
Executable file
178
causal/causal.rb
Executable file
|
|
@ -0,0 +1,178 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
# $Id: ruby 1708 2006-02-24 10:09:22Z ward $
|
||||
# $URL$
|
||||
|
||||
#
|
||||
# Copyright (c) 2006 Ward Wouts <ward@wouts.nl>
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
|
||||
j1 = Array.new
|
||||
j2 = Array.new
|
||||
j3 = Array.new
|
||||
j4 = Array.new
|
||||
|
||||
class Juggler
|
||||
attr_writer :juggler
|
||||
attr_writer :color
|
||||
attr_writer :nodecolor
|
||||
attr_writer :offset
|
||||
def initialize
|
||||
@hands = [ "R", "L" ]
|
||||
@juggler = 0
|
||||
@offset = 0
|
||||
@throws = Array.new
|
||||
@starthand = "R"
|
||||
end
|
||||
|
||||
def draw
|
||||
(0..@throws.length).each{|x|
|
||||
drawnode(x)
|
||||
#p "#{x} #{@throws[x]}"
|
||||
if @throws[x].nil?
|
||||
next
|
||||
end
|
||||
if @throws[x].match(/p/)
|
||||
drawpass(x)
|
||||
else
|
||||
drawself(x)
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
def drawnode(n)
|
||||
puts "\\pscircle#{@nodecolor ? "[linecolor=#{@nodecolor}]" : ""}(#{(n*2+0.5+@offset*2)},-#{@juggler*2+1}){0.4}"
|
||||
if @color
|
||||
puts "\\rput(#{(n*2+0.5+@offset*2)},-#{@juggler*2+1}){{\\color{#{@color}}#{@hands[n.modulo(2)]}}}"
|
||||
else
|
||||
puts "\\rput(#{(n*2+0.5+@offset*2)},-#{@juggler*2+1}){#{@hands[n.modulo(2)]}}"
|
||||
end
|
||||
end
|
||||
|
||||
def drawself(n)
|
||||
case @throws[n].to_f
|
||||
when 0 then puts "0"
|
||||
when 1 then puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2-0.1+@offset*2},-#{@juggler*2+1})(#{(n*2)-0.9+@offset*2},-#{@juggler*2+1}) % self j#{@juggler+1}"
|
||||
when 2 then
|
||||
if @juggler == 0
|
||||
puts "\\psecurve#{@color ? "[linecolor=#{@color}]" : ""}{->}" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+1})" +
|
||||
"(#{n*2+0.1+@offset*2},-#{@juggler*2+0.6})" +
|
||||
"(#{n*2-0.1+@offset*2},-#{@juggler*2+0.4})" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+0.1})" +
|
||||
"(#{n*2+1.1+@offset*2},-#{@juggler*2+0.4})" +
|
||||
"(#{n*2+0.9+@offset*2},-#{@juggler*2+0.6})" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+1})"
|
||||
else
|
||||
puts "\\psecurve#{@color ? "[linecolor=#{@color}]" : ""}{->}" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+1})" +
|
||||
"(#{n*2+0.1+@offset*2},-#{@juggler*2+1.4})" +
|
||||
"(#{n*2-0.1+@offset*2},-#{@juggler*2+1.6})" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+1.9})" +
|
||||
"(#{n*2+1.1+@offset*2},-#{@juggler*2+1.6})" +
|
||||
"(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})" +
|
||||
"(#{n*2+0.5+@offset*2},-#{@juggler*2+1})"
|
||||
end
|
||||
when 3 then puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+1.1+@offset*2},-#{@juggler*2+1})(#{(n*2)+1.9+@offset*2},-#{@juggler*2+1}) % self j#{@juggler+1}"
|
||||
when 4 then
|
||||
if @juggler == 0
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-0.6)(#{n*2+2.5},-0.4)(#{n*2+4.1+@offset*2},-0.6) % double self j#{@juggler+1}"
|
||||
else
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+2.5+@offset*2},-#{@juggler*2+1.6})(#{n*2+4.1+@offset*2},-#{@juggler*2+1.4}) % double self j#{@juggler+1}"
|
||||
end
|
||||
when 5
|
||||
if @juggler == 0
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-0.6)(#{n*2+3.5},-0.2)(#{n*2+6.1+@offset*2},-0.6) % triple self j#{@juggler+1}"
|
||||
else
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+3.5+@offset*2},-#{@juggler*2+1.8})(#{n*2+6.1},-#{@juggler*2+1.4}) % triple self j#{@juggler+1}"
|
||||
end
|
||||
when 6
|
||||
if @juggler == 0
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-0.6)(#{n*2+4.5},0)(#{n*2+8.1+@offset*2},-0.6) % quad self j#{@juggler+1}"
|
||||
else
|
||||
puts "\\pscurve#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+4.5+@offset*2},-#{@juggler*2+2})(#{n*2+8.1},-#{@juggler*2+1.4}) % quad self j#{@juggler+1}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def drawpass(n, to=nil)
|
||||
if @juggler == 0 and to.nil?
|
||||
to = 1
|
||||
elsif to.nil?
|
||||
to = @juggler - 1
|
||||
end
|
||||
case @throws[n]
|
||||
when "3p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+1.4})(#{n*2+2.1},-#{@juggler*2+2.6}) % single pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+0.6})(#{n*2+2.1},-#{@juggler*2-0.6}) % single pass j#{@juggler+1}"
|
||||
end
|
||||
when "3.5p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+3.1+@offset*2},-#{@juggler*2+2.6}) % single pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+0.6})(#{n*2+3.1+@offset*2},-#{@juggler*2-0.6}) % single pass j#{@juggler+1}"
|
||||
end
|
||||
when "4p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+4.1+@offset*2},-#{@juggler*2+2.6}) % double pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+0.6})(#{n*2+4.1+@offset*2},-#{@juggler*2-0.6}) % double pass j#{@juggler+1}"
|
||||
end
|
||||
when "4.5p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+1.4})(#{n*2+5.1+@offset*2},-#{@juggler*2+2.6}) % double pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9+@offset*2},-#{@juggler*2+0.6})(#{n*2+5.1+@offset*2},-#{@juggler*2-0.6}) % double pass j#{@juggler+1}"
|
||||
end
|
||||
when "5p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+1.4})(#{n*2+6.1},-#{@juggler*2+2.6}) % triple pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+0.6})(#{n*2+6.1},-#{@juggler*2-0.6}) % triple pass j#{@juggler+1}"
|
||||
end
|
||||
when "6p" then
|
||||
if to > @juggler
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+1.4})(#{n*2+8.1},-#{@juggler*2+2.6}) % quad pass j#{@juggler+1}"
|
||||
else
|
||||
puts "\\psline#{@color ? "[linecolor=#{@color}]" : ""}{->}(#{n*2+0.9},-#{@juggler*2+0.6})(#{n*2+8.1},-#{@juggler*2-0.6}) % quad pass j#{@juggler+1}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def pattern=(pat)
|
||||
@throws = pat.split(/ /)
|
||||
end
|
||||
end
|
||||
|
||||
class Jugglers
|
||||
end
|
||||
|
||||
j1 = Juggler.new
|
||||
#j1.pattern="4p 4 4 4p 4 4 4p"
|
||||
# 94674 start 67494
|
||||
j1.pattern="3 3.5p 2 4.5p 2 3 3.5p 2 4.5p 2"
|
||||
#j1.color = "darkgray"
|
||||
#j1.nodecolor = "darkgray"
|
||||
j1.draw
|
||||
|
||||
j2 = Juggler.new
|
||||
j2.juggler = 1
|
||||
#j2.pattern="4p 4 4 4p 4 4 4p"
|
||||
# 98274 start 27498
|
||||
j2.offset = 0.5
|
||||
j2.pattern="4.5p 4 1 3.5p 2 4.5p 4 1 3.5p 2"
|
||||
j2.draw
|
||||
Loading…
Add table
Add a link
Reference in a new issue