求任意两矩形的相交面积,矩形可以是倾斜的

晴天v1 2007-11-15 04:04:11
请教:如何求任意两个相交矩形的面积,矩形相对于X轴可以倾斜任意角度。谢谢
...全文
663 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
晴天v1 2007-11-18
  • 打赏
  • 举报
回复
谢谢,问题已解决。
pengleixing 2007-11-16
  • 打赏
  • 举报
回复
直接当作Rgn就可以了
晴天v1 2007-11-15
  • 打赏
  • 举报
回复
补充一下:
已知条件是两矩形的中心的坐标,矩形的宽和高,和相对于X轴的倾斜角度,求两矩形的相交面积,如果相交的话。
同时显示出实际效果出来。在VC下实现。



我自己的想法是这样的: 就用一些基本的变换,由倾斜的角度,首先旋转每个矩形的顶点,用LineTo(),可以画出倾斜的矩形
然后 根据两直线相交方程组求交点,求出交点,并判断交点是否在矩形的边上,依次求出交点后在求多边形的面积。
实现的时候遇到的问题是:已知的坐标和宽,高,是整型的,旋转后顶点坐标成了浮点数,坐标的精度出了问题,不知该怎么处理,另外相交的部分可能是多边形,求面积又该如何实现,?可以依次计算三角型面积吗?

第一次提问,可能表达不是很清楚。见谅。谢谢
syy64 2007-11-15
  • 打赏
  • 举报
回复
看看GIS中的Overlay功能
pengleixing 2007-11-15
  • 打赏
  • 举报
回复
写错了,GetRgnBox是得到整体的外切矩形
有一个函数GetRgnData(似乎是这个,名字记不清楚了),功能是得到整个Rgn一个个分离的Rect
pengleixing 2007-11-15
  • 打赏
  • 举报
回复
因为你有可能是倾斜的矩形,因此请使用Rgn的表示
Rgn当中有求相交Rgn的函数
这样可以得到你希望求面积的Rgn。
Rgn似乎没有直接求面积的函数,不过利用GetRgnBox,可以得到一个个分离的小矩形
累加这些小矩形的面积就可以了
vcPlayer 2007-11-15
  • 打赏
  • 举报
回复
GDI的话:可以用CRect::PtInRect()来计算相交的像素数目;

算法的话:嗯,有点复杂,免讲了。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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