如何计算两个矩形相交部分的面积????

yukin2kitty 2005-04-25 10:00:08
给定两个矩形的两个顶点坐标(对角线上的两个顶点),有什么好的办法计算他们重叠部分的面积呢?
...全文
882 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zr820829 2005-04-25
  • 打赏
  • 举报
回复
如果只给对角线的两个点,好像这个矩形很难确定啊!
yukin2kitty 2005-04-25
  • 打赏
  • 举报
回复
对不起,是我没说清楚,是与x,y平行的矩形。重叠的部分肯定是矩形。
快乐机器的方法能行,而且提供了一个更通用的方法,真的非常感谢!!
diaoni 2005-04-25
  • 打赏
  • 举报
回复
得到凸多边形的全部顶点后,可分割成多个三角形计算面积
======================================================
怎么分割?
alaiyeshi 2005-04-25
  • 打赏
  • 举报
回复
涉及到图形的分割,分割后的图形可以用积分算出
sungengyu 2005-04-25
  • 打赏
  • 举报
回复
多边形的顶点倒是可以得到,问题可以转化为:
“已知N个顶点的坐标,求此多边形的面积”

不过这N个顶点还要判断顺序,知道谁挨着谁。

我想我已经找到一个解决办法了:

遍历两个矩形的8个顶点,如果此顶点在另一个矩形的边或者内部,那么这个顶点是多边形的一个顶点。

遍历每个矩形的每条边,如果此边和另一个矩形的任一条边有交点,则此交点是多边形的一个顶点。注意这里的边是线段而不是直线。

现在已经得到多边形的所有顶点。需要确定每个顶点的相邻顶点。
因为此多边形应该是凸多边形,所以可以用下面的方法:

这些顶点中,必定会有原矩形的相邻顶点,找到这么两个顶点,他们必定是凸多边形的相邻顶点。
把这两个顶点记作 点A 和 点B 。

在直线 AB 上,不应该再有此多边形的其他顶点。
凸多边形其他的顶点,记作X1,X2,X3……

计算射线 AB 和 射线AX1,射线AX2,射线AX3……的夹角,得到 射线AXn 与 射线AB 的夹角最接近180度的,那么Xn 既是A的另一个相邻。

现在 A 的两个相邻顶点 B 和 Xn 已经确定。重复上述步骤,找到 Xn 的另一个相邻顶点。

……

得到凸多边形的全部顶点后,可分割成多个三角形计算面积,再相加。


---------------------------------------------------------------------------------

我自己想的,不知道会不会有问题。抛砖引玉 :)
fct0906 2005-04-25
  • 打赏
  • 举报
回复
我想这里应该是两个矩形都是一边与y轴平行吧, 这样就很简单了, 不然这个条件还没发做.
sungengyu 2005-04-25
  • 打赏
  • 举报
回复
好像很复杂啊,重叠部分可以是三角形/四边形/五边形/……八边形,
晕。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧