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

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>
            欧美国产日韩一区二区| 国产精品久久影院| 美女精品自拍一二三四| 香蕉av福利精品导航| 久热精品视频在线| 美女黄网久久| 亚洲高清视频中文字幕| 麻豆freexxxx性91精品| 另类尿喷潮videofree| 久久综合一区二区| 亚洲福利专区| 夜夜爽av福利精品导航| 亚洲欧美成人网| 久久久激情视频| 欧美另类一区二区三区| 国产精品久久久久久久久久久久久 | 999在线观看精品免费不卡网站| 最新69国产成人精品视频免费| 亚洲精品一区二区三区99| 在线视频你懂得一区| 欧美在线资源| 欧美黄色影院| 国产日韩欧美综合一区| 亚洲人成网站777色婷婷| 亚洲午夜激情| 欧美jjzz| 亚洲欧美日韩国产中文| 久久久久久久久久久一区 | 欧美日产在线观看| 国产偷国产偷精品高清尤物| 亚洲国产日韩美| 香蕉亚洲视频| 亚洲品质自拍| 久久人人看视频| 国产精品呻吟| 9l视频自拍蝌蚪9l视频成人| 久热国产精品视频| 亚洲影院色无极综合| 欧美激情精品久久久| 国产在线观看91精品一区| 亚洲免费观看在线视频| 美日韩精品免费观看视频| 亚洲第一精品久久忘忧草社区| 国产精品99久久久久久人| 毛片av中文字幕一区二区| 牛牛精品成人免费视频| 亚洲性人人天天夜夜摸| 欧美一区二区三区免费观看视频| 黄色一区二区三区| 亚洲精品网址在线观看| 国产日韩欧美一区| 亚洲电影免费在线观看| 国产精品你懂的在线欣赏| 玖玖精品视频| 国产精品草莓在线免费观看| 久久一区二区视频| 欧美日韩在线观看一区二区三区| 国产精品国产三级国产| 激情成人在线视频| 久久久久久久综合狠狠综合| 亚洲视频在线观看免费| 国产精品大全| 亚洲欧美日韩综合国产aⅴ| 99精品视频免费观看视频| 欧美啪啪成人vr| 在线视频免费在线观看一区二区| 亚洲人午夜精品| 欧美日韩国产成人在线免费| 99re热精品| 一区二区三区欧美激情| 国产精品国产三级国产普通话蜜臀| 亚洲婷婷综合久久一本伊一区| 日韩视频精品在线观看| 欧美午夜在线观看| 新狼窝色av性久久久久久| 欧美亚洲综合网| 在线日韩欧美视频| 亚洲国产一区二区精品专区| 欧美韩日一区二区三区| 亚洲小少妇裸体bbw| 亚洲视频在线播放| 狠狠色综合网| 91久久久久| 国产精品欧美一区喷水| 久久夜色精品国产噜噜av| 女同性一区二区三区人了人一| 亚洲精品字幕| 亚洲欧美日韩精品久久久久| 一区二区在线观看视频| 欧美xxx在线观看| 欧美喷潮久久久xxxxx| 午夜精品一区二区三区在线视| 午夜精品亚洲一区二区三区嫩草| 国内精品久久久久久| 91久久国产精品91久久性色| 国产精品久久久久久久久久免费| 浪潮色综合久久天堂| 欧美日韩aaaaa| 久久九九久精品国产免费直播| 欧美黑人在线观看| 性欧美1819性猛交| 欧美成人中文字幕| 亚洲午夜精品| 国产伦理一区| 亚洲国产欧美久久| 亚洲欧美成aⅴ人在线观看| 狠狠色综合色区| 免费成人av在线看| 亚洲国产欧美一区二区三区久久 | 蜜臀va亚洲va欧美va天堂| 亚洲第一福利视频| 欧美精品一区二区三区久久久竹菊 | 99riav国产精品| 国产精品久久久久999| 欧美一区二区三区视频| 影音先锋久久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美日韩一区二区视频在线观看| 久久免费一区| 国产精品九九| 一区二区av| 一区二区欧美视频| 欧美黄污视频| 亚洲国产综合91精品麻豆| 精品成人久久| 欧美在线观看一区| 欧美一区二区女人| 国产精品黄页免费高清在线观看| 亚洲国产精品尤物yw在线观看| 黄色一区二区三区四区| 欧美一级日韩一级| 久久精品国产免费| 国产日产欧美一区| 亚洲欧美国产制服动漫| 一本色道久久综合狠狠躁篇的优点| 久久亚洲国产精品日日av夜夜| 久久精品视频免费观看| 国产日韩欧美不卡在线| 亚洲女同在线| 久久一二三国产| 亚洲成色最大综合在线| 久久夜色撩人精品| 欧美国产日韩a欧美在线观看| 亚洲国产精品va在线看黑人 | 国产精品va在线播放我和闺蜜| 亚洲激情啪啪| 99精品视频一区| 国产精品国产福利国产秒拍| 亚洲专区一区| 久久亚洲欧美国产精品乐播| 国产亚洲一区二区三区在线播放| 亚洲欧美变态国产另类| 久久免费观看视频| 亚洲国产合集| 欧美特黄一级大片| 亚洲欧美在线免费| 久久一综合视频| 91久久精品国产91性色tv| 欧美日本国产在线| 亚洲自拍电影| 欧美 亚欧 日韩视频在线| 亚洲日韩中文字幕在线播放| 欧美另类在线观看| 亚洲欧美一区二区原创| 在线视频亚洲| 亚洲男人影院| 国产一区二区三区久久久| 久久精品综合网| 一道本一区二区| 日韩小视频在线观看| 欧美亚洲在线| 亚洲国产一区二区三区在线播| 国产精品一区毛片| 国产精品久久久久久久午夜 | 麻豆视频一区二区| 久久精品国产亚洲精品| 亚洲欧美视频在线| 午夜日韩在线观看| 亚洲免费视频在线观看| 亚洲一级在线观看| 中文日韩欧美| 欧美午夜寂寞影院| 美日韩精品免费| 亚洲一区视频在线| 欧美黄色aaaa| 久久精品国产77777蜜臀| 亚洲狼人精品一区二区三区| 国产麻豆一精品一av一免费| 欧美激情一区二区三区四区| 欧美一区二区在线免费播放| 亚洲看片网站| 免费黄网站欧美| 亚洲制服少妇| 亚洲看片一区| 亚洲激情在线| 在线观看的日韩av| 国产欧美综合在线| 国产精品久久久久久影视| 欧美久久久久久久久| 噜噜噜91成人网|