2012-02-04 27 views
7

Tôi đang tìm một giải thích về lý do tại sao có 2 công thức mercator khác nhau được thảo luận trên các trang web này.Mercator lập bản đồ logic chiếu xung đột

Tôi hiểu điều này là đúng thuật toán chiếu Mercator:

http://en.wikipedia.org/wiki/Mercator_projection

y = ln|sec(lat) + tan(lat)| 

Tuy nhiên, trang web này đề cập đến một cái gì đó hoàn toàn khác nhau: http://wiki.openstreetmap.org/wiki/Mercator

#include <math.h> 
double lat2y(double a) { return 180/M_PI * log(tan(M_PI/4+a*(M_PI/180)/2)); } 

Bất kỳ ý tưởng?

Trả lời

7

Cả hai công thức đều bằng nhau.

  • giây (x) + tan (x) = [1 + sin (x)]/cos (x)

    sec(x) + tan(x) = [ 1 + sin(x) ]/cos(x)

  • tan (pi/4 + x/2) = sin (pi/4 + x/2)/cos (pi/4 + x/2) =

    = [cos (x/2) + sin (x/2) ]/[cos (x/2) - sin (x/2)] =

    = [cos (x/2) + sin (x/2)]^2/[cos (x/2) - sin (x/2)]/[cos (x/2)) + sin (x/2)] =

    = [1 + 2 * cos (x/2) * sin (x/2)]/[cos^2 (x/2) - sin^2 (x/2)] =

    = [1 + sin (x)]/cos (x)

    enter image description here

Công thức thứ hai thuận tiện hơn cho việc tính toán số, vì nó chỉ liên quan đến việc tính toán hàm lượng giác chỉ một lần.

+0

điều này có vẻ đúng sau khi kiểm tra thêm. – glutz

+1

+1 Cảm ơn bạn đã dẫn xuất - đã giúp tôi rất nhiều. Đến lượt tôi đã làm đẹp câu trả lời của bạn một chút. Hy vọng bạn không nhớ. – aefxx