Module: Sevgi::Geometry::Affinity

Included in:
Point
Defined in:
lib/sevgi/geometry/point.rb

Instance Method Summary collapse

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_xObject



8
# File 'lib/sevgi/geometry/point.rb', line 8

def reflect_x = with(y: -y)

#reflect_yObject



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))