comparison .svn/pristine/01/01346eb099170b569ce9589ce5f15a834ff1b1a7.svn-base @ 909:cbb26bc654de redmine-1.3

Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author Chris Cannam
date Fri, 24 Feb 2012 19:09:32 +0000
parents
children
comparison
equal deleted inserted replaced
908:c6c2cbd0afee 909:cbb26bc654de
1 # Various mathematical calculations extracted from the PDF::Writer for Ruby gem.
2 # - http://rubyforge.org/projects/ruby-pdf
3 # - Copyright 2003 - 2005 Austin Ziegler.
4 # - Licensed under a MIT-style licence.
5 #
6
7 module RFPDF::Math
8 PI2 = ::Math::PI * 2.0
9
10 # One degree of arc measured in terms of radians.
11 DR = PI2 / 360.0
12 # One radian of arc, measured in terms of degrees.
13 RD = 360 / PI2
14 # One degree of arc, measured in terms of gradians.
15 DG = 400 / 360.0
16 # One gradian of arc, measured in terms of degrees.
17 GD = 360 / 400.0
18 # One radian of arc, measured in terms of gradians.
19 RG = 400 / PI2
20 # One gradian of arc, measured in terms of radians.
21 GR = PI2 / 400.0
22
23 # Truncate the remainder.
24 def remt(num, den)
25 num - den * (num / den.to_f).to_i
26 end
27
28 # Wrap radian values within the range of radians (0..PI2).
29 def rad2rad(rad)
30 remt(rad, PI2)
31 end
32
33 # Wrap degree values within the range of degrees (0..360).
34 def deg2deg(deg)
35 remt(deg, 360)
36 end
37
38 # Wrap gradian values within the range of gradians (0..400).
39 def grad2grad(grad)
40 remt(grad, 400)
41 end
42
43 # Convert degrees to radians. The value will be constrained to the
44 # range of radians (0..PI2) unless +wrap+ is false.
45 def deg2rad(deg, wrap = true)
46 rad = DR * deg
47 rad = rad2rad(rad) if wrap
48 rad
49 end
50
51 # Convert degrees to gradians. The value will be constrained to the
52 # range of gradians (0..400) unless +wrap+ is false.
53 def deg2grad(deg, wrap = true)
54 grad = DG * deg
55 grad = grad2grad(grad) if wrap
56 grad
57 end
58
59 # Convert radians to degrees. The value will be constrained to the
60 # range of degrees (0..360) unless +wrap+ is false.
61 def rad2deg(rad, wrap = true)
62 deg = RD * rad
63 deg = deg2deg(deg) if wrap
64 deg
65 end
66
67 # Convert radians to gradians. The value will be constrained to the
68 # range of gradians (0..400) unless +wrap+ is false.
69 def rad2grad(rad, wrap = true)
70 grad = RG * rad
71 grad = grad2grad(grad) if wrap
72 grad
73 end
74
75 # Convert gradians to degrees. The value will be constrained to the
76 # range of degrees (0..360) unless +wrap+ is false.
77 def grad2deg(grad, wrap = true)
78 deg = GD * grad
79 deg = deg2deg(deg) if wrap
80 deg
81 end
82
83 # Convert gradians to radians. The value will be constrained to the
84 # range of radians (0..PI2) unless +wrap+ is false.
85 def grad2rad(grad, wrap = true)
86 rad = GR * grad
87 rad = rad2rad(rad) if wrap
88 rad
89 end
90 end