source: Dev/trunk/src/client/dojox/dgauges/_circularUtils.js @ 532

Last change on this file since 532 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

  • Property svn:executable set to *
File size: 1.6 KB
Line 
1define(function(){
2        // module:
3        //              dojox/dgauges/components/_circularUtils
4        // summary:
5        //              Internal circular utilities.
6        // tags:
7        //              private
8
9        return {
10                computeTotalAngle: function(start, end, orientation){
11                        // summary:
12                        //              Internal method.
13                        // tags:
14                        //              private
15                        if(start == end){
16                                return 360;
17                        }else{
18                                return this.computeAngle(start, end, orientation, 360);
19                        }
20                },
21               
22                modAngle: function(angle, base){
23                        // summary:
24                        //              Internal method.
25                        // tags:
26                        //              private
27                        if(base == undefined){
28                                base = 6.28318530718;
29                        }
30                        if(angle >= base){
31                                do {
32                                        angle -= base;
33                                }
34                                while (angle >= base);
35                        }else{
36                                while (angle < 0){
37                                        angle += base;
38                                }
39                        }
40                        return angle;
41                },
42               
43                computeAngle: function(startAngle, endAngle, orientation, base){
44                        // summary:
45                        //              Internal method.
46                        // tags:
47                        //              private
48                        if(base == undefined){
49                                base = 6.28318530718;
50                        }
51                       
52                        var totalAngle;
53                       
54                        if(endAngle == startAngle){
55                                return base;
56                        }
57                       
58                        if(orientation == "clockwise"){
59                                if(endAngle < startAngle){
60                                        totalAngle = base - (startAngle - endAngle);
61                                }else{
62                                        totalAngle = endAngle - startAngle;
63                                }
64                        }
65                        else{
66                                if(endAngle < startAngle){
67                                        totalAngle = startAngle - endAngle;
68                                }else{
69                                        totalAngle = base - (endAngle - startAngle);
70                                }
71                        }
72                        return this.modAngle(totalAngle, base);
73                },
74               
75                toRadians: function(deg){
76                        // summary:
77                        //              Internal method.
78                        // tags:
79                        //              private
80                        return deg * Math.PI / 180;
81                },
82               
83                toDegrees: function(rad){
84                        // summary:
85                        //              Internal method.
86                        // tags:
87                        //              private
88                        return rad * 180 / Math.PI;
89                }
90        }
91});
Note: See TracBrowser for help on using the repository browser.