Module: Savage::Transformable
Instance Method Summary collapse
-
#rotate(angle, cx = 0, cy = 0) ⇒ Object
TODO: make cx, cy be origin center.
- #scale(sx, sy = sx) ⇒ Object
- #skew_x(angle) ⇒ Object
- #skew_y(angle) ⇒ Object
-
#transform(scale_x, skew_x, skew_y, scale_y, tx, ty) ⇒ Object
Matrix:.
- #translate(tx, ty = 0) ⇒ Object
Instance Method Details
#rotate(angle, cx = 0, cy = 0) ⇒ Object
TODO: make cx, cy be origin center
22 23 24 25 26 27 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 22 def rotate( angle, cx=0, cy=0 ) a = (angle.to_f/180).to_d * Math::PI translate( cx, cy ) transform( Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0) translate( -cx, -cy ) end |
#scale(sx, sy = sx) ⇒ Object
16 17 18 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 16 def scale(sx, sy=sx) transform( sx, 0, 0, sy, 0, 0 ) end |
#skew_x(angle) ⇒ Object
29 30 31 32 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 29 def skew_x( angle ) a = angle.to_f/180 * Math::PI transform( 1, 0, Math.tan(a), 1, 0, 0 ) end |
#skew_y(angle) ⇒ Object
34 35 36 37 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 34 def skew_y( angle ) a = angle.to_f/180 * Math::PI transform( 1, Math.tan(a), 0, 1, 0, 0 ) end |
#transform(scale_x, skew_x, skew_y, scale_y, tx, ty) ⇒ Object
Matrix:
9 10 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 9 def transform(scale_x, skew_x, skew_y, scale_y, tx, ty) end |
#translate(tx, ty = 0) ⇒ Object
12 13 14 |
# File 'lib/ext/savage/lib/savage/transformable.rb', line 12 def translate(tx, ty=0) transform( 1, 0, 0, 1, tx, ty ) end |