首页 > 试题广场 >

框选线段

[编程题]框选线段
  • 热度指数:259 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在二维平面坐标系中,已知存在一条线段(图中P1->p2)和一个矩形区域,编程计算得出线段被矩形区域裁剪的新起始点。
注意以下要求:
A、线段是有方向的,裁剪得到的新线段也需要保持原线段的方向;下图中,线段的描述是P1->p2,则裁剪的结果是P3->p4,反之,如果线段描述是P2->P1,则结果是P4->P3
B、线段的起始点在矩形区域里面时,裁剪的结果则就是原始线段
C、当线段与矩形区域没有相交线段的时候,结果输出“-1”


输入描述:
依次输入矩形区域的:左下角端点坐标(x1,y1),右上角端点坐标(x2,y2),线条起点坐标(x3,y3);线条终点坐标(x4,y4)
输入格式:
第一行四个数字:x1 y1 x2 y2
第二行四个数字:x3 y3 x4 y4

数据范围:
1<=x1,x2,x3,x4,y1,y2,y3,y4<=30
x1<x2
y1<y2


输出描述:
如果能够裁剪则:
    第一行输出裁剪后的起点坐标(ansx1,ansy1)    
    第二行输出裁剪后的终点坐标(ansx2,ansy2)
    结果四舍五入保留小数点后两位
如果不能够裁剪:
    输出-1
示例1

输入

3 3 10 10
11 11
4 4

输出

(10.00,10.00)
(4.00,4.00)

说明

裁剪后起点为(10,10),终点为(4,4)
示例2

输入

3 3 10 10
11 11 14 14

输出

-1

说明

线段无被裁剪出的部分