矩形链的加、减、相交等运算算法?

zhizhi 2002-10-11 07:38:43
问题:有n个不相交的矩形组成的链表,要实现加、减、相交等算法。
定义:
typedef Rect RECT;
struct LRect
{
LRect* pNext;
Rect R;
};
struct Cover
{
LRect* pFrst;
//赋值
int operator = (const Cover& cv);
int operator = (const Rect& rc);
//加一个矩形到链表中,如果和原链表中的某个相交,合并或者分裂成新的互不相交的矩形链表;
int operator += (const Rect& rc);
//从链表中减去一个矩形,
int operator -= (const Rect& rc);
//求相交的链表
int operator *= (const Rect& rc);
//除去公共部分的链表
int operator ^= (const Rect& rc);

int operator += (const Cover& cv);
int operator -= (const Cover& cv);
int operator *= (const Cover& cv);
int operator ^= (const Cover& cv);
};
定义这2个结构和运算重载来实现最后的相等性判断:

int operator == (const Cover& gcv1, const Cover& gcv2);
int operator != (const Cover& gcv1, const Cover& gcv2);

我不知道时候有比较好的解法,谢过先。
...全文
39 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

19,469

社区成员

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

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