答案 0 :(得分:3)
该线的隐式方程是
S(x,y) = (x - x0) (y1 - y0) - (y - y0) (x1 - x0) = 0
当您插入角落的坐标时,S(x, y)
的符号会告诉您线路的哪一侧。更好的是,如果您在两个角评估Sa
和Sb
并且它们具有不同的符号,则交叉点位于Sa / (Sa - Sb)
边的ab
处。
现在,按顺时针顺序依次处理所有四条边。对于每个边缘,如果是正的则保持起始角并保持交叉点(如果有的话)。最后,您将得到0到5个点,用于定义正多边形的凸多边形。
该区域由shoelace公式找到。
答案 1 :(得分:0)
确定阴影区域是否纯粹为三角形,如果是,则计算该三角形的面积(a * b)/ 2,这将解决右手图。
对于左侧图,将区域视为三角形和矩形。通过将三角形区域和矩形区域相加来计算阴影区域。
HTH