• <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 閱讀(783) 評論(0)  編輯 收藏 引用 所屬分類: 計算幾何POJ
            亚洲欧洲中文日韩久久AV乱码| 99久久精品这里只有精品| 人妻丰满?V无码久久不卡| 久久中文字幕精品| 久久精品国产亚洲AV麻豆网站| 久久久婷婷五月亚洲97号色| 亚洲国产精品一区二区久久| 亚洲欧美国产日韩综合久久| 精品久久人妻av中文字幕| 成人午夜精品久久久久久久小说 | 香蕉久久夜色精品国产尤物| 亚洲狠狠婷婷综合久久蜜芽| 国内精品伊人久久久久| 久久人人青草97香蕉| 粉嫩小泬无遮挡久久久久久| 久久久久久青草大香综合精品 | 久久国产乱子精品免费女| 国产精品一区二区久久精品涩爱 | 日产精品久久久久久久性色| 久久久久成人精品无码 | www.久久热.com| 亚洲va久久久久| 亚洲AV伊人久久青青草原| 久久精品国产只有精品2020| 久久天堂AV综合合色蜜桃网| 久久精品桃花综合| 人妻系列无码专区久久五月天| 天天久久狠狠色综合| 77777亚洲午夜久久多喷| 久久人人妻人人爽人人爽| 日韩欧美亚洲综合久久影院Ds| 国产成人无码精品久久久久免费 | 日本精品一区二区久久久| 欧美亚洲另类久久综合| 国产精品久久久福利| 97久久精品国产精品青草| 久久男人Av资源网站无码软件| 久久综合偷偷噜噜噜色| 国产成人精品综合久久久| 精品熟女少妇AV免费久久| 99久久精品免费看国产一区二区三区|