求一关于梯形叠加算法 急!!

yuemail 2005-02-23 11:29:40
有两个梯形ABCD和EFGH,叠加后的多边形可能情况如下:

情况1:
小梯形在大梯形的内部,期望得到的结果为大梯形(如梯形ABCD在梯形EFGH内部,则结果梯形为EFGH)
情况2:
两梯形相交,对其进行“或”操作,产生新的不规则多边形,现在我的问题是想求新多边形的各坐标点。

开始我是这样做的

CRgn rgnA, rgnB,rgnC;

CPoint ptA[4],ptB[4];

ptA[0].x = 50;
ptA[0].y = 0;
ptA[1].x = 80;
ptA[1].y = 50;
ptA[2].x = 120;
ptA[2].y = 50;
ptA[3].x = 150;
ptA[3].y = 0;

ptB[0].x = 100;
ptB[0].y = 0;
ptB[1].x = 110;
ptB[1].y = 80;
ptB[2].x = 120;
ptB[2].y = 50;
ptB[3].x = 150;
ptB[3].y = 0;

rgnA.CreatePolygonRgn( ptA, 4, ALTERNATE)
rgnB.CreatePolygonRgn( ptB, 4, ALTERNATE)
int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_OR );
ASSERT( nCombineResult != ERROR || nCombineResult != NULLREGION );

产生的不规则对象rgnC是正确的,但是我想得到该不规则图形的每一个坐标点,怎么得到,希望高手帮忙,在线等待中!急!!!


...全文
154 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2005-02-23
  • 打赏
  • 举报
回复
CRgn这个类没有这样的功能支持
GetRgnData只能返回矩形结果,不适合梯形

如果只是梯形,自己算吧,并不太复杂

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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