青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 183,  comments - 10,  trackbacks - 0

來自于《編程珠璣》

計算球面的距離,輸入是球面上點的經度和緯度,得到一個原始點集,再得到另一個測量點集,輸出測量點集中的每個點到原始點集中的每個點的距離,這里的距離是兩個點的集合距離,即使在笛卡爾坐標系中的歐氏距離,根據經度和緯度,轉換為點在笛卡爾積中的 x, y, z 坐標

測試數據:
5
E23 N35
E150 N80
W50 N20
W175 N55
E20 S35

3
E105 S70
W40 S50
W160 S85

  1 //
  2 //    goonyangxiaofang(at)163(dot)com
  3 //    QQ: 五九一二四七八七六
  4 //
  5 
  6 #include <iostream>
  7 #include <string>
  8 #include <vector>
  9 #include <cmath>
 10 
 11 class PointSet
 12 {
 13 public:
 14     struct Point
 15     {
 16         std::string longitude;
 17         std::string latitude;
 18         double longi;
 19         double lati;
 20         double x, y, z;
 21     private:
 22         void ajust()
 23         {
 24             if (longitude[0== 'E')
 25             {
 26                 longi = atof(longitude.c_str() + 1);
 27             }
 28             else if (longitude[0== 'W')
 29             {
 30                 longi = 360.0 - atof(longitude.c_str() + 1);
 31             }
 32             if (latitude[0== 'N')
 33             {
 34                 lati = atof(latitude.c_str() + 1);
 35             }
 36             else if (latitude[0== 'S')
 37             {
 38                 lati = -atof(latitude.c_str() + 1);
 39             }
 40             x = R * cos(lati * PI / 180.0* cos(longi * PI / 180.0);
 41             y = R * cos(lati * PI / 180.0* sin(longi * PI / 180.0);
 42             z = R * sin(lati  * PI / 180.0);
 43         }
 44     public:
 45         Point() : longitude(""), latitude(""), longi(0.0), lati(0.0), x(0.0), y(0.0), z(0.0) {}
 46         Point(const std::string& s1, const std::string& s2) : longitude(s1), latitude(s2)
 47         {
 48             ajust();
 49         }
 50         Point(const Point& p) : longitude(p.longitude), latitude(p.latitude), longi(p.longi), lati(p.lati), x(p.x), y(p.y), z(p.z) {};
 51         Point& operator=(const Point& p)
 52         {
 53             longitude = p.longitude;
 54             latitude  = p.latitude;
 55             longi     = p.longi;
 56             lati      = p.lati;
 57             x          = p.x;
 58             y          = p.y;
 59             z          = p.z;
 60             return *this;
 61         }
 62         bool operator==(const Point& p) const
 63         {
 64             return longitude == p.longitude && latitude == p.latitude;
 65         }
 66         double distance(const Point& p)
 67         {
 68             return sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y) + (z - p.z) * (z - p.z));
 69         }
 70         friend std::istream& operator>>(std::istream& in, Point& p);
 71         friend std::ostream& operator<<(std::ostream& outconst Point& p);
 72     };
 73 private:
 74     std::vector<Point> m_set;
 75     static const double R;
 76     static const double PI;
 77 public:
 78     void insert(const std::string& s1, const std::string& s2)
 79     {
 80         Point p(s1, s2);
 81         m_set.push_back(p);
 82     }
 83     void insert(const Point& p)
 84     {
 85         m_set.push_back(p);
 86     }
 87     void print()
 88     {
 89         for (std::size_t i = 0; i < m_set.size(); ++i)
 90         {
 91             std::cout << "Point " << i + 1 << "";
 92             std::cout << m_set[i];
 93         }
 94     }
 95     std::size_t size()
 96     {
 97         return m_set.size();
 98     }
 99     Point& operator[](std::size_t i)
100     {
101         return m_set[i];
102     }
103     const Point& operator[](std::size_t i) const
104     {
105         return m_set[i];
106     }
107 };
108 
109 std::istream& operator>>(std::istream& in, PointSet::Point& p)
110 {
111     std::string s1, s2;
112     in >> s1 >> s2;
113     PointSet::Point p2(s1, s2);
114     p = p2;
115     return in;
116 }
117 
118 std::ostream& operator<<(std::ostream& outconst PointSet::Point& p)
119 {
120     out << p.longitude << ' ';
121     out << p.latitude  << ' ';
122     out << p.longi << ' ';
123     out << p.lati  << ' ';
124     out << p.x << ' ';
125     out << p.y << ' ';
126     out << p.z << ' ';
127     out << std::endl;
128     return out;
129 }
130 
131 const double PointSet::R = 6400.0;
132 const double PointSet::PI = 3.1415926;
133 
134 int main()
135 {
136     PointSet ps;
137     PointSet::Point p;
138     long n;
139     std::cin >> n;
140     for (long i = 0; i < n; ++i)
141     {
142         std::cin >> p;
143         ps.insert(p);
144     }
145     ps.print();
146 
147     PointSet measure_ps;
148     std::cin >> n;
149     for (long i = 0; i < n; ++i)
150     {
151         std::cin >> p;
152         measure_ps.insert(p);
153     }
154     measure_ps.print();
155     for (std::size_t i = 0; i < measure_ps.size(); ++i)
156     {
157         for (std::size_t j = 0; j < ps.size(); ++j)
158         {
159             std::cout << "From " << i + 1 << " to " << j + 1 << "" << ps[j].distance(measure_ps[i]) << std::endl;
160         }
161     }
162     return 0;
163 }
164 
posted on 2011-03-08 14:07 unixfy 閱讀(220) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩一区二区三区在线| 久久精品30| av不卡免费看| 久久亚洲高清| 国产偷自视频区视频一区二区| 亚洲六月丁香色婷婷综合久久| 久久久久久9999| 亚洲女人天堂av| 国产精品地址| 香蕉成人啪国产精品视频综合网| 亚洲精品乱码久久久久久按摩观| 久久久久国产精品一区三寸| 国产精品日韩欧美一区二区| 亚洲网站在线播放| 亚洲精品一区二区三区不| 欧美成人免费小视频| 最近中文字幕日韩精品| 亚洲福利在线观看| 你懂的成人av| 一本到高清视频免费精品| 亚洲精品欧美精品| 欧美三级网页| 欧美在线free| 久久嫩草精品久久久精品一| 欲香欲色天天天综合和网| 美腿丝袜亚洲色图| 欧美jizz19性欧美| 在线视频你懂得一区| 日韩亚洲精品电影| 国产精品视频久久久| 久久精品日韩欧美| 久久久久一区二区| 亚洲精品日产精品乱码不卡| 91久久久久久国产精品| 欧美日韩一区二区三区| 亚洲欧美日韩成人| 久久国产精品72免费观看| 亚洲日本成人女熟在线观看| 亚洲免费高清视频| 国产欧美婷婷中文| 男女视频一区二区| 欧美日韩成人在线观看| 亚久久调教视频| 久久视频一区| 亚洲综合日本| 免播放器亚洲一区| 午夜在线播放视频欧美| 久久精品国产亚洲5555| 99re热这里只有精品免费视频| 夜夜嗨av一区二区三区网页| 国产精品理论片在线观看| 久久一区二区三区四区| 欧美激情1区| 久久精品官网| 欧美人成免费网站| 久久久久久999| 欧美午夜片在线观看| 狂野欧美一区| 国产精品国产一区二区 | 久久国产手机看片| 免费不卡在线观看av| 午夜精品99久久免费| 久久免费的精品国产v∧| 亚洲特级片在线| 免费h精品视频在线播放| 欧美在线一区二区三区| 欧美成人一区二区三区在线观看| 欧美一级理论性理论a| 欧美成人在线影院| 久久综合狠狠综合久久综青草 | 欧美三级小说| 亚洲成人在线视频播放 | 亚洲一二三区在线| 欧美mv日韩mv国产网站app| 久久精品国产第一区二区三区| 欧美精品入口| 欧美国产视频在线| 一区二区三区自拍| 欧美亚洲免费电影| 午夜精品一区二区三区在线| 欧美精品手机在线| 欧美激情精品久久久久久变态| 国产综合自拍| 欧美在线啊v一区| 欧美在线你懂的| 国产精品视频一区二区三区| 亚洲精品久久久久中文字幕欢迎你| 一区视频在线播放| 久久久五月天| 免费看的黄色欧美网站| 一区二区三区在线观看国产| 久久精品国产清自在天天线| 开元免费观看欧美电视剧网站| 国产亚洲精品综合一区91| 午夜精品美女久久久久av福利| 亚洲欧美一级二级三级| 国产精品xxxav免费视频| 在线视频中文亚洲| 亚洲男人影院| 国产午夜一区二区三区| 欧美一区亚洲一区| 欧美国产视频在线| 夜夜爽av福利精品导航| 欧美色网在线| 欧美一区二区三区视频| 另类天堂视频在线观看| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲视频免费| 久久精品日韩一区二区三区| 国产综合一区二区| 奶水喷射视频一区| 亚洲精品乱码久久久久久久久| 一本一本久久| 国产精品久久一卡二卡| 欧美一区二区国产| 欧美大成色www永久网站婷| 亚洲精选91| 国产乱肥老妇国产一区二| 久久国产精品一区二区三区四区| 免费成人高清视频| 一区二区三区三区在线| 国产手机视频精品| 女生裸体视频一区二区三区| 亚洲精品视频一区二区三区| 性xx色xx综合久久久xx| 在线观看日韩精品| 欧美人与禽猛交乱配视频| 午夜精品视频在线观看| 欧美激情欧美狂野欧美精品| 亚洲一区综合| 亚洲高清一二三区| 国产精品久久久久久妇女6080| 久久久久久九九九九| 日韩亚洲综合在线| 欧美成人a∨高清免费观看| 亚洲制服av| 亚洲国产综合在线看不卡| 国产乱码精品一区二区三区忘忧草| 久久人人97超碰国产公开结果| 9人人澡人人爽人人精品| 美女国内精品自产拍在线播放| 亚洲视频免费在线| 麻豆亚洲精品| 亚洲欧美另类在线| 国产乱码精品1区2区3区| 一本色道久久综合狠狠躁篇的优点| 小处雏高清一区二区三区| 91久久精品美女高潮| 国产欧美日韩综合一区在线观看| 欧美二区乱c少妇| 久久精品中文字幕一区| 亚洲无线视频| 亚洲精品一区二区网址| 免费欧美在线| 久久精品国产一区二区三| 亚洲一二三区在线| av成人免费观看| 91久久精品网| 亚洲高清不卡一区| 国外成人在线| 国产日韩欧美一二三区| 国产精品成人在线观看| 欧美日韩精品三区| 欧美激情精品久久久久久蜜臀| 久久精品视频免费播放| 亚洲欧美日韩国产综合| 999亚洲国产精| 亚洲欧洲精品一区二区精品久久久| 久久综合久久久| 久久久久国产精品厨房| 久久福利影视| 久久久久成人精品| 久久精品91久久久久久再现| 亚洲欧美日韩国产中文在线| 一区二区三区免费网站| 一区二区日韩精品| 一区二区日韩| 亚洲天堂av电影| 亚洲在线免费观看| 亚洲欧美日韩一区在线| 亚洲尤物在线视频观看| 亚洲一区二区三区四区视频| 亚洲小说欧美另类社区| 亚洲一区久久| 欧美一级理论性理论a| 欧美自拍偷拍午夜视频| 久久久精品国产免大香伊 | 这里是久久伊人| 夜夜爽av福利精品导航| 中文高清一区| 亚洲欧美视频一区二区三区| 久久99伊人| 裸体歌舞表演一区二区| 欧美韩日一区二区| 亚洲精品日韩激情在线电影| 一区二区三区国产在线观看| 亚洲欧美国产毛片在线| 久久全国免费视频| 欧美日韩在线第一页| 国产精品三区www17con|