• <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 閱讀(801) 評論(0)  編輯 收藏 引用 所屬分類: 計算幾何POJ
            欧美日韩久久中文字幕| 狠狠色丁香久久婷婷综合| 久久久av波多野一区二区| 99久久国语露脸精品国产| 久久r热这里有精品视频| 久久久WWW成人| 久久亚洲私人国产精品| 国产日韩欧美久久| 久久久久久国产精品免费无码| 色88久久久久高潮综合影院| 青青草国产精品久久久久| 亚洲香蕉网久久综合影视 | 久久青青国产| 97久久香蕉国产线看观看| 精品无码久久久久久国产| 久久精品www人人爽人人| 久久久精品日本一区二区三区| 亚洲精品无码久久久久sm| 合区精品久久久中文字幕一区| 久久精品国产99国产电影网| 久久天天躁狠狠躁夜夜avapp| 精品乱码久久久久久夜夜嗨 | 久久精品国内一区二区三区| 青青草原综合久久大伊人| 久久久久久一区国产精品| 精品久久久久久| 国产精品9999久久久久| 色欲综合久久躁天天躁蜜桃| 日日狠狠久久偷偷色综合0| 国产成人精品久久一区二区三区av | 国产福利电影一区二区三区久久久久成人精品综合 | 国产A级毛片久久久精品毛片| 久久97久久97精品免视看| 久久成人影院精品777| WWW婷婷AV久久久影片| 久久婷婷五月综合国产尤物app| 一级女性全黄久久生活片免费| 亚洲精品无码久久久久AV麻豆| 国产精品狼人久久久久影院 | 久久福利青草精品资源站| 99久久婷婷国产综合亚洲|