How to make rect from the intersection of two?

给你一囗甜甜゛ 提交于 2019-12-06 21:36:31

Assuming you have rectangles r1 and r2, with .left, .right, .top, and .bottom edges, then

left = max(r1.left, r2.left);
right = min(r1.right, r2.right);
top = max(r1.top, r2.top);
bottom = min(r1.bottom, r2.bottom);

(with the usual convention that coordinates increase top to bottom and left to right). Finally, check that left<right and top<bottom, and compute the area:

Area = (right - left) * (top - bottom);

Alternatively, you can use the clip() function. From the docs you linked in your question:

clip(Rect) -> Rect Returns a new rectangle that is cropped to be completely inside the argument Rect. If the two rectangles do not overlap to begin with, a Rect with 0 size is returned.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!