• <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
            亚洲乱码精品久久久久..| 久久这里只精品国产99热| 热re99久久精品国99热| 人人狠狠综合久久88成人| 久久精品国产亚洲av麻豆色欲 | 亚洲国产另类久久久精品黑人| 久久这里只精品99re66| 国产精品久久久久久久久软件 | 久久婷婷国产剧情内射白浆| 久久久久免费看成人影片| 99久久精品国产毛片| 一本色道久久88精品综合| 精品国产VA久久久久久久冰 | 亚洲午夜久久久影院| 久久精品成人免费看| 99久久香蕉国产线看观香| 久久久久久久尹人综合网亚洲| 亚洲欧美国产精品专区久久| 亚洲国产精品无码久久| 精品无码久久久久久国产| 亚洲AV无码久久精品成人| 久久久久一本毛久久久| 久久精品人人做人人爽电影| 亚洲综合伊人久久综合| 久久亚洲中文字幕精品一区| 秋霞久久国产精品电影院| 天天躁日日躁狠狠久久| 久久久国产打桩机| 亚洲欧美另类日本久久国产真实乱对白 | 国产成人精品久久综合| 国产精品久久成人影院| 成人综合伊人五月婷久久| 亚洲精品乱码久久久久久中文字幕| 人妻少妇精品久久| 日日狠狠久久偷偷色综合0| 国产成人99久久亚洲综合精品| av无码久久久久不卡免费网站 | 国产福利电影一区二区三区久久久久成人精品综合 | 亚洲伊人久久大香线蕉综合图片| 无码人妻久久一区二区三区蜜桃| 精品99久久aaa一级毛片|