明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1734|回复: 4

求助!!各位!!一个算法问题!!!!!!!!

[复制链接]
发表于 2002-10-15 08:48 | 显示全部楼层 |阅读模式
题目是:判断两个矩形是否重合。(含有相同的像素点就算重合)
已  知:两个矩形的型心p(p');转角a(a');宽w(w');  高h(h')。以上是参数。
要  求:用c/c++写算法!
谢谢各位高手!!
发表于 2002-10-15 09:13 | 显示全部楼层

你再解释一下什么是重合

这只是一个基本的计算机图形学问题,不会很困难。但你说的重合好象没表达清楚,下面的图形中矩形是不是重合的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2002-10-15 09:36 | 显示全部楼层

属于重合!!计算机图形学,很难么?

谢谢了。
发表于 2002-10-15 11:00 | 显示全部楼层

Re:

首先,你可以利用ACAD的某些功能来实现,这并不牵涉复杂的算法。
先将要判断的矩形面域化,再求面域的交,若其交集为空,再判断是否有重复端点即可。
要用高级语言作出算法实现也不很困难,但有点麻烦,要使用到很多解析几何方法。以下仿照计算机图形学的矢量裁剪算法给出一个思路,据此你应该很容易作出高级语言的算法表述。
第一步,计算矩形各端点坐标,这应该不难;
第二步,以矩形1(为表达方便,假设要判断的是矩形1和矩形2)为参考,旋转坐标系。计算新坐标系中矩形各端点坐标。(我不记得坐标旋转后坐标计算公式了,你去查查书。)
第三步,若以下任何一个条件满足,则矩形不“重合”(我觉得说相交更准确)
MAX(矩形2各端点X坐标)<MIN(矩形1各端点X坐标)
MAX(矩形1各端点X坐标)<MIN(矩形2各端点X坐标)
MAX(矩形2各端点Y坐标)<MIN(矩形1各端点Y坐标)
MAX(矩形1各端点Y坐标)<MIN(矩形2各端点Y坐标)
否则下一步。
第四步,判断矩形2的端点是否有位于矩形1内部(这同样只要进行坐标比较),若有,矩形相交,否则下一步。
第五步,计算矩形2各边与矩形1的交点,只要有一个交点在矩形1内部,则矩形相交。若所有交点都在矩形1外部,两矩形不相交。
确实很麻烦,程序实现会有很多行代码。
 楼主| 发表于 2002-10-15 11:13 | 显示全部楼层

谢谢

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 06:53 , Processed in 0.243219 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表