• <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>


            May the force be with you!
            posts - 52,  comments - 33,  trackbacks - 0

            這么簡單的幾何題居然讓我WA了3次,果然一日不編程即手生矣...
            要點(diǎn): (1)   經(jīng)緯度->球面坐標(biāo)->直角坐標(biāo)
                   (2)   求的是球面距離
                   (3)   計(jì)算大圓圓心角的時候,要注意三角形不是以R=6370為腰的等腰三角形,而是以A,B,O三點(diǎn)各自距離為邊的三角形
                   (4)   計(jì)算圓心角時用點(diǎn)乘會方便很多(還是看到Feli的才發(fā)現(xiàn),誒)
                                                            2007.10.25
                                                             Simbaforrest
             1 #include<stdio.h>
             2 #include<math.h>
             3 const double R=6370;
             4 const double pi=3.14159265358979323846264338327950;
             5 typedef struct tagAngle
             6 {
             7     double d,m;
             8     double ang;
             9     char s[20];
            10 }Angle;
            11 typedef struct tagPoint
            12 {
            13     Angle a,b;
            14     double x,y,z;
            15 }Point;
            16 
            17 Point self,dest;
            18 
            19 void change(Point &pt)
            20 {
            21     pt.a.ang=pt.a.d+pt.a.m/60;
            22     pt.b.ang=pt.b.d+pt.b.m/60;
            23     //change lat
            24     if(pt.a.s[0]=='N')
            25     {
            26         pt.a.ang=90-pt.a.ang;
            27     }
            28     else
            29     {
            30         pt.a.ang+=90;
            31     }
            32     //change lot;
            33     if(pt.b.s[0]=='W')
            34     {
            35         pt.b.ang=360-pt.b.ang;
            36     }
            37     pt.z=R*cos(pt.a.ang*pi/180);
            38     pt.x=R*sin(pt.a.ang*pi/180)*cos(pt.b.ang*pi/180);
            39     pt.y=R*sin(pt.a.ang*pi/180)*sin(pt.b.ang*pi/180);
            40 }
            41 
            42 bool init()
            43 {
            44     if(scanf("%lf",&self.a.d)!=EOF)
            45     {
            46         scanf("%lf%s%lf%lf%s",&self.a.m,self.a.s,&self.b.d,&self.b.m,self.b.s);
            47         change(self);
            48         scanf("%lf%lf%s%lf%lf%s",&dest.a.d,&dest.a.m,dest.a.s,&dest.b.d,&dest.b.m,dest.b.s);
            49         change(dest);
            50         return 1;
            51     }
            52     return 0;
            53 }
            54 
            55 double dist(Point a)
            56 {
            57     return sqrt( (a.x)*(a.x)+(a.y)*(a.y)+(a.z)*(a.z) );
            58 }
            59 
            60 double cross(Point a,Point b)
            61 {
            62     return (a.x*b.x+a.y*b.y+a.z*b.z);
            63 }
            64 
            65 void solve()
            66 {
            67     double ans,thita;
            68     thita=acos( (cross(self,dest))/dist(self)/dist(dest) );
            69     printf("%.3lf\n",R*thita);
            70 }
            71 
            72 int main()
            73 {
            74     while(init())
            75     {
            76         solve();
            77     }
            78     return 0;
            79 }
            80 

            posted on 2007-10-25 17:00 R2 閱讀(162) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            你是第 free hit counter 位訪客




            <2007年10月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(4)

            隨筆分類(54)

            隨筆檔案(52)

            文章檔案(1)

            ACM/ICPC

            技術(shù)綜合

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 63675
            • 排名 - 358

            最新評論

            閱讀排行榜

            評論排行榜

            99久久中文字幕| 精品久久久久久亚洲精品| 国产∨亚洲V天堂无码久久久| 亚洲国产精品成人久久蜜臀| 伊人久久一区二区三区无码| 婷婷国产天堂久久综合五月| 亚洲国产成人久久笫一页| 中文字幕无码久久久| 一本色道久久HEZYO无码| 久久综合综合久久狠狠狠97色88| 国产精品青草久久久久福利99| 99国产欧美久久久精品蜜芽| 久久婷婷五月综合成人D啪| 久久天天躁夜夜躁狠狠躁2022 | 欧美牲交A欧牲交aⅴ久久| 久久线看观看精品香蕉国产| 伊人久久大香线蕉AV一区二区| 久久99国产精品二区不卡| 国产美女亚洲精品久久久综合| 青草影院天堂男人久久| 人妻无码αv中文字幕久久琪琪布| 久久国产V一级毛多内射| 国产精品免费久久| 精品久久久久久综合日本| 国内精品久久久久影院薰衣草| 日本加勒比久久精品| 激情五月综合综合久久69| 久久国产精品无码HDAV| 日产精品久久久久久久| 久久大香萑太香蕉av| 欧美日韩精品久久久久| 久久国产精品国语对白| 国产99久久九九精品无码| 狠狠色丁香婷婷综合久久来| 国产成人精品白浆久久69| 99久久精品日本一区二区免费| 久久er99热精品一区二区| 精品久久久久久国产潘金莲| 国内精品久久久久影院日本| 91精品国产综合久久久久久| 久久r热这里有精品视频|