• <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>
            posts - 100,  comments - 15,  trackbacks - 0


            一.叉積

               設(shè) a(x1,y1), b(x2,y2)
            二維:a x b=x1*y2-x2*y1

               設(shè)p0(x0,y0), p1(x1,y1) ,p2(x2,y2), p3(x3,y3)
              < p0p1>= (p1-p0) =(x1-x0,y1-y0);
               <p2p3>= (p3-p2) =(x3-x2,y3-y2);
               <p0p1> x <p2p3> =(p1-p0) x (p3-p2) = (x1-x0)*(y3-y2)- (x3-x2)* (y1-y0); 

               (p1-p0) x (p3-p2)結(jié)果的意義:

               : <p0p1><p2,p3>順時(shí)針(0,pi)內(nèi)

               負(fù): <p0p1><p2,p3>逆時(shí)針(0,pi)內(nèi)

               0 : <p0p1>, <p2p3>共線,夾角為0pi

             

             

            double xmult(point p0,point p1,point p2){
                
            return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
            }

               可用于判p2與<p0 p1>的關(guān)系

             

            double xmult(point p0,point p1,point p2,point p3){
                
            return (p1.x-p0.x)*(p3.y-p2.y)-(p3.x-p2.x)*(p1.y-p0.y);
            }

               可用于判<p0p1>, <p2p3>位置關(guān)系

            double xmult(line u,line v){
                
            return (u.b.x-u.a.x)*(v.b.y-v.a.y)-(v.b.x-v.a.x)*(u.b.y-u.a.y);
            }


             

            //計(jì)算兩直線交點(diǎn),注意事先判斷直線是否平行!
            point intersection(line u,line v){
                point ret
            =u.a;
                
            double t=((u.a.x-v.a.x)*(v.a.y-v.b.y)-(u.a.y-v.a.y)*(v.a.x-v.b.x))
                        
            /((u.a.x-u.b.x)*(v.a.y-v.b.y)-(u.a.y-u.b.y)*(v.a.x-v.b.x));
                ret.x
            +=(u.b.x-u.a.x)*t;
                ret.y
            +=(u.b.y-u.a.y)*t;
                
            return ret;
            }



             

            int relat_and_intersection(line u,line v,point &ret)
            {
                
            /*
                LINE 重合
                NONE 平行
                INTERSECT 相交并返回交點(diǎn)
                
            */

                
            double a1,b1,c1,a2,b2,c2;
                
            //系數(shù)
                a1=u.a.y-u.b.y;
                b1
            =-(u.a.x-u.b.x);
                c1
            =u.a.x*u.b.y-u.a.y*u.b.x;

                a2
            =v.a.y-v.b.y;
                b2
            =-(v.a.x-v.b.x);
                c2
            =v.a.x*v.b.y-v.a.y*v.b.x;

                
            if(fabs(a1*b2-a2*b1)<eps)
                
            {
                    
            if( fabs(a1*c2-a2*c1)<eps && fabs(b1*c2-b2*c1)<eps )
                        
            return LINE;
                    
            else return NONE;
                }

                
            else 
                
            {
                    point ret;
                    ret.x
            =(b1*c2-b2*c1)/(a1*b2-a2*b1);
                    ret.y
            =(a2*c1-a1*c2)/(a1*b2-a2*b1);
                    
            return INTERSECT;
                }

            }
            posted on 2009-10-04 18:38 wyiu 閱讀(257) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 常用模板和函數(shù)

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


            亚洲国产一成人久久精品| 欧美精品一本久久男人的天堂| 久久se精品一区精品二区| 国产69精品久久久久久人妻精品| 久久久精品波多野结衣| 久久99精品国产麻豆宅宅| 久久久无码人妻精品无码| 久久人人添人人爽添人人片牛牛| 久久伊人五月天论坛| 欧美国产精品久久高清| 久久久久久久综合日本| 久久国产高清一区二区三区| 一本色道久久88加勒比—综合| 久久精品99久久香蕉国产色戒| 人妻无码αv中文字幕久久| 成人久久免费网站| 久久亚洲欧美国产精品| 久久精品国产亚洲精品2020| 久久精品水蜜桃av综合天堂| 99久久婷婷国产综合亚洲| 久久狠狠高潮亚洲精品| 久久精品免费一区二区三区| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 国内精品久久久久久99| 大伊人青草狠狠久久| 国产精品成人无码久久久久久| 久久国产乱子伦精品免费午夜| 久久综合成人网| 色婷婷综合久久久中文字幕 | 久久午夜无码鲁丝片秋霞 | 99国产欧美精品久久久蜜芽| 亚洲一区二区三区日本久久九| 久久久久人妻一区精品果冻| 亚洲乱码中文字幕久久孕妇黑人| 精品久久久久久国产| 欧美精品丝袜久久久中文字幕| 国产A三级久久精品| 国产99久久久久久免费看| 一本一道久久综合狠狠老| 人人狠狠综合久久亚洲88| 少妇久久久久久久久久|