题意:平面上两条线段,问能接住多少雨水
方法:首先看两条线段能否相交,不相交肯定为0。
如果相交,求得交点后判断4个端点中是否存在两个点其纵坐标大于交点坐标,如果不存在,肯定为0
如果存在,判断高板是否将低板遮挡,过高于纵坐标的两个端点中较低的那个(p1)做垂线,如果交点存在且纵坐标大于p1纵坐标,
则被遮挡,为0。否则过p1做一条水平线与另一条线段相交得交点p3则面积就是 fabs(cross(p,p1,p3))/2了
WA点:此题考察线段能接多少雨水而非能盛多少雨水。存在能盛雨水,但是雨水无法垂直落入的情况,比较难想。
代码: