难度:困难
题目内容:
给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。
要求浮点型误差不超过10^-6。若有多个交点(线段重叠)则返回 X 值最小的点,X 坐标相同则返回 Y 值最小的点。
示例 1:
输入:
line1 = {0, 0}, {1, 0}
line2 = {1, 1}, {0, -1}
输出: {0.5, 0}
示例 2:
输入:
line1 = {0, 0}, {3, 3}
line2 = {1, 1}, {2, 2}
输出: {1, 1}
示例 3:
输入:
line1 = {0, 0}, {1, 1}
line2 = {1, 0}, {2, 1}
输出: {},两条线段没有交点
题解:
中学肯定学过两点的直线方程,可以先求出交点的表达式,然后计算出来这个交点,看看这个交点是否同时在两个线段上。
当然了,因为是数字化的,肯定有量化误差,所以允许10^-6的误差。
解它!
有点麻烦噢
然后还得再讨论以下垂直与坐标轴的情况
因为分母不能为0嘛
网友评论