Class: Shake
- Inherits:
-
Object
- Object
- Shake
- Defined in:
- lib/rubysketch/solitaire/common/shake.rb
Instance Method Summary collapse
-
#initialize(length, vector) ⇒ Shake
constructor
A new instance of Shake.
- #update ⇒ Object
- #vector ⇒ Object
Constructor Details
#initialize(length, vector) ⇒ Shake
Returns a new instance of Shake.
6 7 8 |
# File 'lib/rubysketch/solitaire/common/shake.rb', line 6 def initialize(length, vector) @length, @vector = length, vector end |
Instance Method Details
#update ⇒ Object
10 11 12 13 14 15 |
# File 'lib/rubysketch/solitaire/common/shake.rb', line 10 def update() @length *= 0.8 if @length @vector *= -0.8 if @vector v = vector @length = @vector = nil if v && v.mag < 1 end |
#vector ⇒ Object
17 18 19 20 21 22 |
# File 'lib/rubysketch/solitaire/common/shake.rb', line 17 def vector() return nil unless @length || @vector v = @vector&.dup&.rotate(rand -20.0...20.0) || Vector.random2D v *= @length if @length v end |