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

            Intersecting Lines

            Time Limit: 1000MS Memory Limit: 10000K
            Total Submissions: 4260 Accepted: 2049

            Description

            We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a plane will intersect in one of three ways: 1) no intersection because they are parallel, 2) intersect in a line because they are on top of one another (i.e. they are the same line), 3) intersect in a point. In this problem you will use your algebraic knowledge to create a program that determines how and where two lines intersect.
            Your program will repeatedly read in four points that define two lines in the x-y plane and determine how and where the lines intersect. All numbers required by this problem will be reasonable, say between -1000 and 1000.

            Input

            The first line contains an integer N between 1 and 10 describing how many pairs of lines are represented. The next N lines will each contain eight integers. These integers represent the coordinates of four points on the plane in the order x1y1x2y2x3y3x4y4. Thus each of these input lines represents two lines on the plane: the line through (x1,y1) and (x2,y2) and the line through (x3,y3) and (x4,y4). The point (x1,y1) is always distinct from (x2,y2). Likewise with (x3,y3) and (x4,y4).

            Output

            There should be N+2 lines of output. The first line of output should read INTERSECTING LINES OUTPUT. There will then be one line of output for each pair of planar lines represented by a line of input, describing how the lines intersect: none, line, or point. If the intersection is a point then your program should output the x and y coordinates of the point, correct to two decimal places. The final line of output should read "END OF OUTPUT".

            Sample Input

            5
            0 0 4 4 0 4 4 0
            5 0 7 6 1 0 2 3
            5 0 7 6 3 -6 4 -3
            2 0 2 27 1 5 18 5
            0 3 4 0 1 2 2 5
            

            Sample Output

            INTERSECTING LINES OUTPUT
            POINT 2.00 2.00
            NONE
            LINE
            POINT 2.00 5.00
            POINT 1.07 2.20
            END OF OUTPUT
            
            /*************************************
            計算幾何基礎題,判斷直線相交及求交點
            注意斜率不存在的情況
            *************************************
            */

            #include 
            <iostream>
            #include 
            <cstdio>

            int main()
            {
                
            double x1, y1, x2, y2, x3, y3, x4, y4;
                
            int n;
                
            double k1, k2;
                
            double b1, b2;
                
            double i_x, i_y;
                scanf(
            "%d"&n);
                std::cout 
            << "INTERSECTING LINES OUTPUT" << std::endl;
                
            while( n-- )
                
            {
                    scanf(
            "%lf%lf%lf%lf%lf%lf%lf%lf"&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4);

                    
            if( x1 != x2 && x3 != x4 )
                    
            {
                        k1 
            = ( y2 - y1 ) / ( x2 - x1 );
                        k2 
            = ( y4 - y3 ) / ( x4 - x3 );
                        b1 
            = y1 - k1 * x1;
                        b2 
            = y3 - k2 * x3;
                        
            if( k1 == k2 )
                        
            {
                            
            if( b1 == b2 )
                                printf(
            "LINE\n");
                            
            else
                                printf(
            "NONE\n");
                        }

                        
            else
                        
            {
                            i_x 
            = (b2 - b1) / (k1 - k2);
                            i_y 
            = k1 * i_x + b1;
                            printf(
            "POINT %.2lf %.2lf\n", i_x, i_y);
                        }

                    }

                    
            else if( x1 == x2 && x3 == x4 )
                    
            {
                        
            if( x1 == x3 )
                        std::cout 
            << "LINE\n";
                        
            else
                        std::cout 
            << "NONE\n";
                    }

                    
            else if( x1 == x2 && x3 != x4 )
                    
            {
                        k2 
            = ( y4 - y3 ) / ( x4 - x3 );
                        b2 
            = y3 - k2 * x3;
                        i_x 
            = x1;
                        i_y 
            = k2 * x1 + b2;
                        printf(
            "POINT %.2lf %.2lf\n", i_x, i_y);
                    }

                    
            else
                    
            {
                        k1 
            = ( y2 - y1 ) / ( x2 - x1 );
                        b1 
            = y1 - k1 * x1;
                        i_x 
            = x3;
                        i_y 
            = k1 * x3 + b1;
                        printf(
            "POINT %.2lf %.2lf\n", i_x, i_y);
                    }

                }

                std::cout 
            << "END OF OUTPUT\n";
                
            return 0;
            }

            posted on 2010-10-03 11:03 Vontroy 閱讀(799) 評論(0)  編輯 收藏 引用 所屬分類: 計算幾何POJ
            久久精品国产亚洲AV香蕉| 欧美久久一级内射wwwwww.| 色婷婷综合久久久久中文| 久久人人青草97香蕉| 亚洲精品乱码久久久久久| 国产精品久久99| 日韩久久无码免费毛片软件| 成人久久免费网站| 99久久精品免费观看国产| 久久精品国产亚洲AV久| 国产日产久久高清欧美一区| 久久无码一区二区三区少妇| 久久精品亚洲精品国产色婷 | 国产高清美女一级a毛片久久w | 中文字幕久久精品| 麻豆成人久久精品二区三区免费| 国产99久久九九精品无码| 亚洲综合熟女久久久30p| 久久综合色区| 色综合久久88色综合天天| 久久人人爽人人人人爽AV| 久久综合亚洲色HEZYO国产 | 无码伊人66久久大杳蕉网站谷歌| 久久精品无码一区二区三区| 天天爽天天狠久久久综合麻豆| 久久久久一本毛久久久| 亚洲国产精品人久久| 精品久久久久久成人AV| 亚洲熟妇无码另类久久久| 亚洲欧洲中文日韩久久AV乱码| 国产日韩久久免费影院| 日本一区精品久久久久影院| 99精品国产在热久久无毒不卡| 无码人妻精品一区二区三区久久 | 青春久久| 久久最新免费视频| 久久亚洲国产精品五月天婷| 久久天天日天天操综合伊人av| 中文精品久久久久国产网址| 99久久人人爽亚洲精品美女| 日韩亚洲欧美久久久www综合网 |