Module: Sevgi::Geometry::Affinity
- Included in:
- Point
- Defined in:
- lib/sevgi/geometry/point.rb
Instance Method Summary collapse
- #reflect(x: true, y: true) ⇒ Object
- #reflect_x ⇒ Object
- #reflect_y ⇒ Object
- #rotate(a) ⇒ Object
- #scale(sx, sy = Undefined) ⇒ Object
- #skew(ax, ay = Undefined) ⇒ Object
- #skew_x(a) ⇒ Object
- #skew_y(a) ⇒ Object
- #translate(dx, dy = Undefined) ⇒ Object
Instance Method Details
#reflect(x: true, y: true) ⇒ Object
6 |
# File 'lib/sevgi/geometry/point.rb', line 6 def reflect(x: true, y: true) = with(x: (y ? -1 : 1) * self.x(), y: (x ? -1 : 1) * self.y()) |
#reflect_x ⇒ Object
8 |
# File 'lib/sevgi/geometry/point.rb', line 8 def reflect_x = with(y: -y) |
#reflect_y ⇒ Object
10 |
# File 'lib/sevgi/geometry/point.rb', line 10 def reflect_y = with(x: -x) |
#rotate(a) ⇒ Object
12 |
# File 'lib/sevgi/geometry/point.rb', line 12 def rotate(a) = with(x: (x * F.cos(a)) - (y * F.sin(a)), y: (x * F.sin(a)) + (y * F.cos(a))) |
#scale(sx, sy = Undefined) ⇒ Object
14 |
# File 'lib/sevgi/geometry/point.rb', line 14 def scale(sx, sy = Undefined) = with(x: sx * x, y: Undefined.default(sy, sx) * y) |
#skew(ax, ay = Undefined) ⇒ Object
16 |
# File 'lib/sevgi/geometry/point.rb', line 16 def skew(ax, ay = Undefined) = with(x: x + (y * F.tan(ax)), y: y + (x * F.tan(Undefined(ay, ax)))) |
#skew_x(a) ⇒ Object
18 |
# File 'lib/sevgi/geometry/point.rb', line 18 def skew_x(a) = with(x: x + (y * f.tan(a))) |
#skew_y(a) ⇒ Object
20 |
# File 'lib/sevgi/geometry/point.rb', line 20 def skew_y(a) = with(y: y + (x * F.tan(a))) |
#translate(dx, dy = Undefined) ⇒ Object
22 |
# File 'lib/sevgi/geometry/point.rb', line 22 def translate(dx, dy = Undefined) = with(x: x + dx, y: y + Undefined.default(dy, dx)) |