Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libRaster / src / org / gvsig / raster / util / MathUtils.java @ 12522

History | View | Annotate | Download (3.93 KB)

1 11250 nacho
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*/
19
package org.gvsig.raster.util;
20
21
/**
22
 * Utilidades para calculos matem?ticos
23
 *
24
 * @version 18/04/2007
25
 * @author Nacho Brodin (nachobrodin@gmail.com)
26
 *
27
 */
28
public class MathUtils {
29
        public static double INCHESMTR = 39.73007874D;
30
        public static double INCHESCM = 0.3973007874D;
31
        public static double INCHESMM = 0.03973007874D;
32
        public static double MTRSINCH = 0.0254D;
33
        public static double MMSINCH = 25.4D;
34
        public static double CMSINCH = 2.54D;
35
36
37
        /**
38
     * Recorta el n?mero de decimales a n del n?mero pasado por par?metro
39
     * @return N?mero recortado
40
     */
41
    public static double tailDecimals(double num, int n){
42
            int m = (int)Math.pow(10, n);
43
        num *= m;
44
        int aux = ((int)num);
45
        num = (double)((double)aux / (double)m);
46
        return num;
47
    }
48
49
        /**
50
         * Convierte pixels en milimetros dependiendo del los puntos por pulgada
51
         * @param pixels N?mero de pixels
52
         * @param ppp Puntos por pulgada
53
         * @return N?mero de milimetros
54
         */
55
        public static double convertPixelsToMms(int pixels, int ppp){
56
                return convertPixelsToInches(pixels, ppp) * MMSINCH;
57
        }
58
59
        /**
60
         * Convierte pixels en centimetros dependiendo del los metros por pixel
61
         * @param pixels N?mero de pixels
62
         * @param mtsPixel Metros por pixel
63
         * @return N?mero de centimetros
64
         */
65
        public static double convertPixelsToCms(int pixels, int ppp){
66
                return convertPixelsToInches(pixels, ppp) * CMSINCH;
67
        }
68
69
        /**
70
         * Convierte pixels en metros dependiendo del los metros por pixel
71
         * @param pixels N?mero de pixels
72
         * @param mtsPixel Metros por pixel
73
         * @return N?mero de metros
74
         */
75
        public static double convertPixelsToMts(int pixels, int ppp){
76
                return convertPixelsToInches(pixels, ppp) * MTRSINCH;
77
        }
78
79
        /**
80
         * Convierte pixels en pulgadas dependiendo del los metros por pixel
81
         * @param pixels N?mero de pixels
82
         * @param mtsPixel Metros por pixel
83
         * @return N?mero de pulgadas
84
         */
85
        public static double convertPixelsToInches(int pixels, int ppp){
86
                return (double)((double)pixels / (double)ppp);
87
        }
88
89
        /**
90
         * Convierte metros en pixels dependiendo de los puntos por pulgada
91
         * @param mts N?mero de metros
92
         * @param ppp Puntos por pulgada
93
         * @return N?mero de pixeles
94
         */
95
        public static int convertMtsToPixels(double mts, int ppp){
96
                return (int)(mts * MathUtils.INCHESMTR * ppp);
97
        }
98
99
        /**
100
         * Convierte pulgadas en pixels dependiendo de los puntos por pulgada
101
         * @param mts N?mero de pulgadas
102
         * @param ppp Puntos por pulgada
103
         * @return N?mero de pixeles
104
         */
105
        public static int convertInchesToPixels(double inches, int ppp){
106
                return (int)(inches * ppp);
107
        }
108
109
        /**
110
         * Convierte centimetros en pixels dependiendo de los puntos por pulgada
111
         * @param mts N?mero de centmetros
112
         * @param ppp Puntos por pulgada
113
         * @return N?mero de pixeles
114
         */
115
        public static int convertCmsToPixels(double cms, int ppp){
116
                return (int)(cms * MathUtils.INCHESCM * ppp);
117
        }
118
119
        /**
120
         * Convierte milimetros en pixels dependiendo de los puntos por pulgada
121
         * @param mts N?mero de milimetros
122
         * @param ppp Puntos por pulgada
123
         * @return N?mero de pixeles
124
         */
125
        public static int convertMmsToPixels(double mms, int ppp){
126
                return (int)(mms * MathUtils.INCHESMM * ppp);
127
        }
128
}