计算两个矩形是否有相交部分,求C或C++源代码算法

已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点。判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确。请各位大神费心想想吧,最好就用到已有的这些条件... 已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点。判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确。

请各位大神费心想想吧,最好就用到已有的这些条件,不要用大量的sin啊cos函数,越简单越好,我这个判断在整个程序里要反复调用的,多了会效率很慢。
好算法加分,拜托了啊!
不计算矩形的顶点坐标,算法复杂度要低,尽量运用我上面给出的这些条件不要另外计算获得条件。
展开
 我来答
兔子和小强
2012-09-24 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1434万
展开全部
//判断两条线段是否相交
bool judgep(point a, point b, point c, point d)
{
return a,b在cd直线两边 && c,d在ab直线两边;
}
//判断矩形相交
bool judger(rect r1, rect r2)
{
//通过(x1,y1),(x2,y2),d计算出矩形四个点
四条边每两条线段判断是否相交;
}
更多追问追答
追问
不能用这个,这样的算法复杂度是8*8,而且计算矩形定点需要用到较多三角函数。
追答
8*8???
这个叫O(1)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小de烟圈
2012-09-24 · 超过17用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:55.3万
展开全部
我的思路需要用到解析几何,根据中点坐标和宽度d,得到矩形四个顶点的坐标:(L1,W1)(L2.W2)(L3,W3)(L4,L4),同理求出另一个矩形的四个顶点坐标:(l1,w1)(l2,w2)(l3,w3)(l4,w4)

矩形相交时,必须具备两个条件A.两个矩形顶点的横坐标范围有包含关系和相交关系
B.两个矩形顶点的纵坐标范围有包含和橡胶关系
其他情况一概不想交
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
搞钱小达人
2012-09-26 · 超过27用户采纳过TA的回答
知道答主
回答量:447
采纳率:0%
帮助的人:67.7万
展开全部
楼主。你想多了,算法自己想啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xindongforever
2012-09-24 · TA获得超过111个赞
知道答主
回答量:87
采纳率:0%
帮助的人:32.2万
展开全部
先把种类都罗列出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
技术域
2012-09-25 · TA获得超过476个赞
知道答主
回答量:51
采纳率:0%
帮助的人:35万
展开全部
acm里面很多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式