计算两个矩形是否有相交部分,求C或C++源代码算法
已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点。判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确。请各位大神费心想想吧,最好就用到已有的这些条件...
已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点。判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确。
请各位大神费心想想吧,最好就用到已有的这些条件,不要用大量的sin啊cos函数,越简单越好,我这个判断在整个程序里要反复调用的,多了会效率很慢。
好算法加分,拜托了啊!
不计算矩形的顶点坐标,算法复杂度要低,尽量运用我上面给出的这些条件不要另外计算获得条件。 展开
请各位大神费心想想吧,最好就用到已有的这些条件,不要用大量的sin啊cos函数,越简单越好,我这个判断在整个程序里要反复调用的,多了会效率很慢。
好算法加分,拜托了啊!
不计算矩形的顶点坐标,算法复杂度要低,尽量运用我上面给出的这些条件不要另外计算获得条件。 展开
5个回答
展开全部
//判断两条线段是否相交
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计算出矩形四个点
四条边每两条线段判断是否相交;
}
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)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的思路需要用到解析几何,根据中点坐标和宽度d,得到矩形四个顶点的坐标:(L1,W1)(L2.W2)(L3,W3)(L4,L4),同理求出另一个矩形的四个顶点坐标:(l1,w1)(l2,w2)(l3,w3)(l4,w4)
矩形相交时,必须具备两个条件A.两个矩形顶点的横坐标范围有包含关系和相交关系
B.两个矩形顶点的纵坐标范围有包含和橡胶关系
其他情况一概不想交
矩形相交时,必须具备两个条件A.两个矩形顶点的横坐标范围有包含关系和相交关系
B.两个矩形顶点的纵坐标范围有包含和橡胶关系
其他情况一概不想交
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主。你想多了,算法自己想啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把种类都罗列出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
acm里面很多的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询