• <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 閱讀(802) 評論(0)  編輯 收藏 引用 所屬分類: 計算幾何POJ
            人妻丰满AV无码久久不卡| 青青草原综合久久| 久久亚洲AV无码精品色午夜麻豆 | 中文字幕久久波多野结衣av| 99久久无色码中文字幕人妻| 国产综合久久久久| 色综合合久久天天给综看| 人妻精品久久无码专区精东影业| 99久久精品无码一区二区毛片 | 少妇久久久久久被弄高潮| 97久久超碰成人精品网站| 亚洲精品成人网久久久久久| 丁香狠狠色婷婷久久综合| 久久久久久精品久久久久| 香港aa三级久久三级| 亚洲午夜久久久影院| 久久久久一级精品亚洲国产成人综合AV区 | 久久综合狠狠综合久久综合88| 思思久久99热只有频精品66| 国产69精品久久久久777| 中文字幕人妻色偷偷久久| 久久亚洲高清综合| 国产精品免费久久久久影院| 97久久国产亚洲精品超碰热 | 久久婷婷是五月综合色狠狠| 丁香五月综合久久激情| 中文字幕亚洲综合久久| 成人国内精品久久久久影院| 成人久久综合网| 国产精品久久久久久久久| 久久国产免费观看精品3| 性色欲网站人妻丰满中文久久不卡| 午夜精品久久影院蜜桃| 亚洲午夜精品久久久久久app| 激情久久久久久久久久| 久久久久国产成人精品亚洲午夜| 国产精品激情综合久久| 久久99精品国产麻豆蜜芽| 久久人人爽人爽人人爽av | 国产精品久久久久a影院| 99久久精品免费看国产一区二区三区 |