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

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 閱讀(222) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            美日韩免费视频| 欧美午夜一区二区福利视频| 国精产品99永久一区一区| 欧美在线网址| 久久精品人人做人人爽| 伊人久久久大香线蕉综合直播 | 欧美精品亚洲| 99re亚洲国产精品| 一本久道久久综合婷婷鲸鱼| 欧美色视频一区| 亚洲欧美在线视频观看| 亚洲免费一级电影| 激情久久久久久久| 欧美成在线观看| 欧美精品一区二区在线观看| 亚洲免费视频观看| 久久er精品视频| 亚洲美女中出| 亚洲免费在线观看视频| 亚洲第一色在线| 99re6热只有精品免费观看 | 欧美亚一区二区| 久久精品观看| 欧美激情精品久久久久久免费印度 | 亚洲人午夜精品| 中文在线不卡| 亚洲国产成人久久综合| 99精品免费视频| 永久免费视频成人| 亚洲美女淫视频| 国内偷自视频区视频综合| 亚洲欧洲日本mm| 国产日韩专区在线| 亚洲欧洲一级| 国产日韩欧美视频| 日韩午夜av| 亚洲成人原创| 午夜亚洲性色福利视频| 日韩亚洲一区二区| 久久久国产成人精品| 亚洲香蕉伊综合在人在线视看| 欧美在线资源| 在线亚洲国产精品网站| 欧美一区国产一区| 亚洲欧美激情一区| 欧美日韩国产美女| 欧美激情国产高清| 精品不卡一区二区三区| 亚洲影院免费观看| 亚洲视频专区在线| 欧美成年人网| 欧美成人精品高清在线播放| 国产欧美丝祙| 一区二区精品在线| 一本到高清视频免费精品| 久久综合九色综合网站| 久久午夜视频| 国产一区二区三区免费观看| 亚洲制服av| 亚洲欧美精品中文字幕在线| 欧美日韩一级片在线观看| 欧美岛国在线观看| 136国产福利精品导航网址| 小黄鸭精品密入口导航| 亚洲影院污污.| 欧美日韩日韩| 夜夜嗨av色一区二区不卡| 亚洲日本在线视频观看| 久久一区二区三区av| 蜜臀av性久久久久蜜臀aⅴ| 好吊一区二区三区| 久久经典综合| 蜜臀久久99精品久久久画质超高清| 国产伦精品一区二区三区| 欧美有码视频| 免费亚洲网站| 99精品99| 国产精品久久久久久久免费软件| 一区二区三区日韩精品| 香蕉久久a毛片| 国模私拍视频一区| 母乳一区在线观看| 亚洲免费精品| 久久国产天堂福利天堂| 国内外成人在线视频| 久久久亚洲欧洲日产国码αv| 欧美a级一区二区| 亚洲精选久久| 国产欧美日韩伦理| 久久亚洲二区| 亚洲精品乱码视频| 欧美一区二区三区在线观看| 黑人一区二区三区四区五区| 久热国产精品视频| 一区二区三区.www| 裸体一区二区| 在线天堂一区av电影| 国产欧美日韩激情| 欧美高清不卡| 先锋影音一区二区三区| 亚洲高清视频一区二区| 午夜激情综合网| 亚洲欧洲精品天堂一级| 国产精品久在线观看| 久久免费偷拍视频| 亚洲午夜久久久| 欧美激情中文字幕一区二区| 午夜精品免费在线| 亚洲黄色高清| 国产一区99| 欧美日韩国产小视频在线观看| 亚洲欧美日韩另类| 日韩视频一区二区三区| 久久这里只有| 午夜亚洲视频| 一区二区三区欧美| 最近看过的日韩成人| 国产欧美精品日韩精品| 欧美日韩色综合| 乱码第一页成人| 欧美一区日本一区韩国一区| 一区二区三区免费网站| 亚洲高清毛片| 免费永久网站黄欧美| 久久精品亚洲一区二区| 亚洲一区欧美二区| 一区二区高清在线| 亚洲激情中文1区| 国产三级精品三级| 欧美日韩综合在线免费观看| 免费观看在线综合| 久久先锋资源| 久热精品在线| 欧美在线一区二区| 亚洲欧美日韩人成在线播放| 亚洲天堂成人在线视频| 日韩午夜中文字幕| 99这里有精品| 一本在线高清不卡dvd | 亚洲日本理论电影| 亚洲高清自拍| 亚洲国产91精品在线观看| 欧美韩日精品| 亚洲国产成人av| 亚洲国产一区二区三区青草影视| 农夫在线精品视频免费观看| 蜜臀久久99精品久久久久久9| 久久亚洲综合| 欧美成人激情在线| 亚洲国产午夜| 亚洲美洲欧洲综合国产一区| 99视频+国产日韩欧美| 这里只有视频精品| 午夜久久一区| 久久久久久久激情视频| 久久这里只有精品视频首页| 嫩草影视亚洲| 欧美日韩一区二区三区高清| 欧美日韩黄色大片| 国产精品视频久久| 国产在线精品一区二区夜色| 在线免费观看视频一区| 亚洲精品美女91| 亚洲天堂成人| 久久久亚洲精品一区二区三区| 久久午夜电影| 亚洲精品乱码久久久久久日本蜜臀 | 久久在线免费观看视频| 欧美精品麻豆| 国产日本欧美一区二区| 怡红院精品视频在线观看极品| 亚洲片区在线| 亚洲综合三区| 欧美h视频在线| 99精品国产在热久久婷婷| 小处雏高清一区二区三区| 久久婷婷色综合| 国产精品白丝黑袜喷水久久久| 国产一区二区精品丝袜| 亚洲精品一区二区三区樱花| 亚洲综合电影| 欧美国产精品劲爆| 亚洲欧美国产日韩天堂区| 牛牛国产精品| 国产亚洲永久域名| 亚洲一级电影| 欧美成人一区二区三区片免费| 日韩亚洲欧美在线观看| 久久精品日产第一区二区三区| 欧美色图首页| 亚洲欧洲一区二区在线观看 | 99精品免费网| 麻豆国产精品va在线观看不卡| 在线视频中文亚洲| 欧美成人一区二区三区| 狠狠色狠狠色综合| 亚洲欧美国产日韩天堂区| 亚洲电影专区| 久久综合狠狠综合久久激情| 国产欧美日韩在线播放|