Example usage for java.lang Math PI

List of usage examples for java.lang Math PI

Introduction

In this page you can find the example usage for java.lang Math PI.

Prototype

double PI

To view the source code for java.lang Math PI.

Click Source Link

Document

The double value that is closer than any other to pi, the ratio of the circumference of a circle to its diameter.

Usage

From source file:Main.java

public static void setPerspectiveM(float[] m, int offset, double fovy, double aspect, double zNear,
        double zFar) {
    Matrix.setIdentityM(m, offset);//  w  w w  . j  a v a 2s  .  com
    double ymax = zNear * Math.tan(fovy * Math.PI / 360.0);
    double ymin = -ymax;
    double xmin = ymin * aspect;
    double xmax = ymax * aspect;
    Matrix.frustumM(m, offset, (float) xmin, (float) xmax, (float) ymin, (float) ymax, (float) zNear,
            (float) zFar);
}

From source file:Main.java

/**
 * @param angle// w ww  .  j a v  a 2 s  .  c  om
 * @return the angle between -pi and pi
 */
public static double nomalizeAngleRadsPi(double angle) {
    double ret = angle;
    while (ret > Math.PI)
        ret -= TWO_PI_RADS;
    while (ret < -Math.PI)
        ret += TWO_PI_RADS;
    return ret;
}

From source file:Main.java

/**
 * convert degrees to radians based on ios code from: http://blog.nova-box.com/2010/05/iphone-ray-picking-glunproject-sample.html
 * @param deg//  w  ww.  j a  va2  s  .  c  o m
 * @return
 */
public static double degToRadians(float deg) {
    return deg / 180.0 * Math.PI;
}

From source file:Main.java

/**
 * <p>This function converts radians to decimal degrees.</p>
 *
 * @param rad - the radian to convert//  w ww.  j a v  a2  s  . c om
 * @return the radian converted to decimal degrees
 */
private static final double rad2deg(double rad) {
    return (rad * 180 / Math.PI);
}

From source file:Main.java

private static float getX(double angle, double radius) {
    return (float) (Math.cos(angle + Math.PI / 2) * radius);
}

From source file:Main.java

public static void MercatorToBD(double mercatorX, double mercatorY) {
    CbdX = mercatorY / 20037508.34 * 180;
    CbdX = 180 / Math.PI * (2 * Math.atan(Math.exp(CbdX * Math.PI / 180)) - Math.PI / 2);
    CbdY = mercatorX / 20037508.34 * 180;

    Log.d("CustomerActivity", "x" + Double.toString(CbdX));
    Log.d("CustomerActivity", "y" + Double.toString(CbdY));
}

From source file:Main.java

public static float getActionSpot(int _direction, int _distance, float _x, float _y, char _type, float _xOffset,
        float _yOffset) {

    // Palautetaan x- tai y-arvo _typen mukaan
    if (_type == 'x') {
        return _x + _xOffset + (float) Math.cos((_direction * Math.PI) / 180) * _distance;
    } else {//from ww  w. j av  a 2s .  com
        return _y + _yOffset + (float) Math.sin((_direction * Math.PI) / 180) * _distance;
    }
}

From source file:Main.java

public static double[] Rec2Sph(double x, double y, double z) {
    double[] sph = new double[3];
    sph[0] = Math.sqrt(x * x + y * y + z * z);
    sph[1] = x == 0 ? 0 : Math.atan(Math.abs(y / x));
    if (x < 0)
        sph[1] = Math.PI - sph[1];
    if (y < 0)
        sph[1] *= -1;/*from   w  w  w .ja v a 2 s .  com*/
    sph[2] = Math.asin(z / sph[0]);
    return sph;
}

From source file:Main.java

public static double calculateDistance(double lat1, double lng1, double lat2, double lng2) {
    int MAXITERS = 20;
    // Convert lat/long to radians
    lat1 *= Math.PI / 180.0;
    lat2 *= Math.PI / 180.0;/*from   w  w  w.  j ava2  s .c om*/
    lng1 *= Math.PI / 180.0;
    lng2 *= Math.PI / 180.0;

    double a = 6378137.0; // WGS84 major axis
    double b = 6356752.3142; // WGS84 semi-major axis
    double f = (a - b) / a;
    double aSqMinusBSqOverBSq = (a * a - b * b) / (b * b);

    double L = lng2 - lng1;
    double A = 0.0;
    double U1 = Math.atan((1.0 - f) * Math.tan(lat1));
    double U2 = Math.atan((1.0 - f) * Math.tan(lat2));

    double cosU1 = Math.cos(U1);
    double cosU2 = Math.cos(U2);
    double sinU1 = Math.sin(U1);
    double sinU2 = Math.sin(U2);
    double cosU1cosU2 = cosU1 * cosU2;
    double sinU1sinU2 = sinU1 * sinU2;

    double sigma = 0.0;
    double deltaSigma = 0.0;
    double cosSqAlpha = 0.0;
    double cos2SM = 0.0;
    double cosSigma = 0.0;
    double sinSigma = 0.0;
    double cosLambda = 0.0;
    double sinLambda = 0.0;

    double lambda = L; // initial guess
    for (int iter = 0; iter < MAXITERS; iter++) {
        double lambdaOrig = lambda;
        cosLambda = Math.cos(lambda);
        sinLambda = Math.sin(lambda);
        double t1 = cosU2 * sinLambda;
        double t2 = cosU1 * sinU2 - sinU1 * cosU2 * cosLambda;
        double sinSqSigma = t1 * t1 + t2 * t2; // (14)
        sinSigma = Math.sqrt(sinSqSigma);
        cosSigma = sinU1sinU2 + cosU1cosU2 * cosLambda; // (15)
        sigma = Math.atan2(sinSigma, cosSigma); // (16)
        double sinAlpha = (sinSigma == 0) ? 0.0 : cosU1cosU2 * sinLambda / sinSigma; // (17)
        cosSqAlpha = 1.0 - sinAlpha * sinAlpha;
        cos2SM = (cosSqAlpha == 0) ? 0.0 : cosSigma - 2.0 * sinU1sinU2 / cosSqAlpha; // (18)

        double uSquared = cosSqAlpha * aSqMinusBSqOverBSq; // defn
        A = 1 + (uSquared / 16384.0) * // (3)
                (4096.0 + uSquared * (-768 + uSquared * (320.0 - 175.0 * uSquared)));
        double B = (uSquared / 1024.0) * // (4)
                (256.0 + uSquared * (-128.0 + uSquared * (74.0 - 47.0 * uSquared)));
        double C = (f / 16.0) * cosSqAlpha * (4.0 + f * (4.0 - 3.0 * cosSqAlpha)); // (10)
        double cos2SMSq = cos2SM * cos2SM;
        deltaSigma = B * sinSigma * // (6)
                (cos2SM + (B / 4.0) * (cosSigma * (-1.0 + 2.0 * cos2SMSq)
                        - (B / 6.0) * cos2SM * (-3.0 + 4.0 * sinSigma * sinSigma) * (-3.0 + 4.0 * cos2SMSq)));

        lambda = L + (1.0 - C) * f * sinAlpha
                * (sigma + C * sinSigma * (cos2SM + C * cosSigma * (-1.0 + 2.0 * cos2SM * cos2SM))); // (11)

        double delta = (lambda - lambdaOrig) / lambda;
        if (Math.abs(delta) < 1.0e-12) {
            break;
        }
    }

    float distance = (float) (b * A * (sigma - deltaSigma));
    return distance;
}

From source file:Main.java

public static double gps2km(final double lat_a, final double lng_a, final double lat_b, final double lng_b) {
    if (!isGpsValid(lng_a, lat_a) || !isGpsValid(lng_b, lat_b)) {
        return -1;
    }/*from   w w w . j a v a 2  s .  c  o  m*/
    final double radLat1 = (lat_a * Math.PI / 180.0);
    final double radLat2 = (lat_b * Math.PI / 180.0);
    final double a = radLat1 - radLat2;
    final double b = (lng_a - lng_b) * Math.PI / 180.0;
    final double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
            + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    return s * EARTH_RADIUS;
}