OpenGL::Earth::Coords - OpenGL::Earth::Coords documentation


OpenGL-Earth documentation Contained in the OpenGL-Earth distribution.

Index


Code Index:

NAME

Top

OpenGL::Earth::Coords

SYNOPSIS

Top

    # Where's Oslo on a 3D Sphere of radius 1.0?
    use OpenGL::Earth::Coords;
    my ($x, $y, $z) = OpenGL::Earth::Coords::earth_to_xyz(59.9167, 10.75, 1.0);
    printf "x=%.3f y=%.3f z=%.3f\n", $x, $y, $z;

DESCRIPTION

Top

Just a quick and dirty module to convert lat/long coordinates into 3D x, y, z coordinates, assuming the Earth is a perfect sphere, which we know is not.

AUTHORS

Top

Cosimo Streppone, cosimo@cpan.org

COPYRIGHT

Top


OpenGL-Earth documentation Contained in the OpenGL-Earth distribution.

#
# Coordinates system related functions
#
# $Id: Coords.pm 120 2009-01-25 20:57:26Z Cosimo $

package OpenGL::Earth::Coords;

# (1/360.0) * 2 * 3.14159265
use constant DEG_TO_RAD => 0.0174532925;

# Convert earth latitude/longitude to 3D coords
sub earth_to_xyz ($$$) {
    my ($lat, $lon, $radius) = @_;

    $lat *= DEG_TO_RAD;
    $lon *= DEG_TO_RAD;

	my $cos_lat = $radius * cos($lat);

    my $x = $cos_lat * cos($lon);
    my $y = $cos_lat * sin($lon);
    my $z = $radius  * sin($lat);

    return ($x, $y, $z);
}

1;

__END__