Đang tải...

Chia sẻ Tính khoảng cách

Thảo luận trong 'Tin học, máy vi tính' bắt đầu bởi duycop, 27/2/17.

View Users: View Users
  1. duycop

    duycop Thành viên chăm chỉ

    Tham gia ngày:
    20/1/17
    Bài viết:
    137
    Điểm thành tích:
    63
    Giới tính:
    Nam
    Ngày nay rất nhiều thiết bị sử dụng GPS để định vị, để xác định vị trí trên bản đồ và nảy sinh bài toán cần đo khoảng khoảng cách giữa 2 điểm.
    Đối với các thiết bị nhúng, cần tính khoảng cách giữa 2 điểm có thể tham khảo chương trình nho nhỏ sau:
    Code C++ đầy đủ tại: Free Online IDE and Terminal
    cả 3 hàm sau đều tính khoảng cách, hàm thứ 3 thiếu chính xác nhất, nhưng lại chạy nhanh hơn cả:
    Mã:
    double distance1(double lat1, double lng1, double lat2, double lng2) {
      double p = 0.01745329; /* p=PI/180 */
      double a = sin(lat1*p)*sin(lat2*p) + cos(lat1*p)*cos(lat2*p)*cos((lng1-lng2)*p);
      return 6371000.0 * acos(a);
    }
    double distance2(double lat1, double lng1, double lat2, double lng2) {
      double p = 0.01745329; /* p=PI/180 */
      double b = 0.5 - cos((lat2-lat1)*p)/2.0 + cos(lat1*p)*cos(lat2*p)*(1-cos((lng2-lng1)*p))/2.0;
      return 12742000.0 * asin(sqrt(b));
    }
    double distance3(double lat1, double lng1, double lat2, double lng2) {
        double dx = lat1-lat2, dy = lng1-lng2;
        return 111095*sqrt(dx*dx + dy*dy);
    }
    Code C++ đầy đủ tại: Free Online IDE and Terminal

    Tham khảo: http://coronaviet.com/forum/index.p...em-tren-ban-do-trong-ung-dung-corona-sdk.838/
     
    Hoang Trung Kien thích bài này.

Chia sẻ trang này