Module: Draught::Transformations

Extended by:
Transformations
Included in:
Transformations
Defined in:
lib/draught/transformations.rb,
lib/draught/transformations/affine.rb,
lib/draught/transformations/common.rb,
lib/draught/transformations/composer.rb,
lib/draught/transformations/proclike.rb,
lib/draught/transformations/composition.rb

Defined Under Namespace

Modules: Common Classes: Affine, Composer, Composition, Proclike

Constant Summary collapse

MM_TO_PT =
2.8346456692913

Instance Method Summary collapse

Instance Method Details

#mm_to_ptObject



13
14
15
16
17
18
19
# File 'lib/draught/transformations.rb', line 13

def mm_to_pt
  Affine.new(Matrix[
    [MM_TO_PT, 0, 0],
    [0, MM_TO_PT, 0],
    [0, 0, 1]
  ])
end

#rotate(radians) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/draught/transformations.rb', line 49

def rotate(radians)
  cos = Math.cos(radians)
  sin = Math.sin(radians)
  Transformations::Affine.new(Matrix[
    [cos, -sin, 0],
    [sin, cos, 0],
    [0, 0, 1]
  ])
end

#round_to_n_decimal_places(n) ⇒ Object



59
60
61
# File 'lib/draught/transformations.rb', line 59

def round_to_n_decimal_places(n)
  Proclike.new(->(p) { [p.x.round(n), p.y.round(n)] })
end

#scale(factor) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/draught/transformations.rb', line 41

def scale(factor)
  Transformations::Affine.new(Matrix[
    [factor, 0, 0],
    [0, factor, 0],
    [0, 0, 1]
  ])
end

#x_axis_reflectObject



21
22
23
24
25
26
27
# File 'lib/draught/transformations.rb', line 21

def x_axis_reflect
  Affine.new(Matrix[
    [1,0,0],
    [0,-1,0],
    [0,0,1]
  ])
end

#xy_axis_reflectObject



37
38
39
# File 'lib/draught/transformations.rb', line 37

def xy_axis_reflect
  Composer.compose(x_axis_reflect, y_axis_reflect)
end

#y_axis_reflectObject



29
30
31
32
33
34
35
# File 'lib/draught/transformations.rb', line 29

def y_axis_reflect
  Affine.new(Matrix[
    [-1,0,0],
    [0,1,0],
    [0,0,1]
  ])
end