封闭多边型填充

harrisyang 2004-04-13 11:20:52
我想用一组等距平行线去填充一个已知各个顶点的封闭多边型,
各位,有什么好的方法,得到平行线与多边型的交点。
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphapaopao 2004-05-01
  • 打赏
  • 举报
回复
用直线和多边形求交点,交点在直线上排列,有无穷远处向多边形方向排列。最外面的点编号为0 (为偶数),然后是1(奇数)。位于多边形内部的线段是 偶数点到奇数点的线段。

============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
遇到问题可以给我发消息,给我发信息时请附带原帖地址
http://alphasun.icpcn.com/alphasun/index.htm
http://alphasun.icpcn.com/alphasun/YaCompile/index.htm YaCompile批量自动编译VC工程
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
Tomcat4 2004-04-30
  • 打赏
  • 举报
回复
up
luoyejianshou 2004-04-21
  • 打赏
  • 举报
回复
把各顶点存在一个顶点数组pts里,顶点个数为cnt,pts[cnt]=pts[0];
for (i=0;i<cnt;i++)
{ 按y值大小把pts[i]和pts[i+1]赋给lower,upper;
if((scany>lower.y)&&(scany<upper.y))
{ y=scany;
x=lower.x+(scany-lower.y)*xl;//xl是斜率,自己求吧
记录x,y到一个交点数组//x,y即为交点
}
}
还有处理奇偶个交点的问题,自己再想想,不太难的,很有意思的.
harrisyang 2004-04-14
  • 打赏
  • 举报
回复
依照各位的方法,那我怎么得到平行线与多边型的交点?
ddddh 2004-04-14
  • 打赏
  • 举报
回复
hi

shan_hy说的没错,可以用位图刷子来实现。

或者你也可以这样:
得到一个 region, 然后用 GetRegionData() 得到一个 rect 的数组
这些个rect 就表示了这个区域。

你既然有了一些rect,那么划线应该不难了吧?
ddddh 2004-04-13
  • 打赏
  • 举报
回复
hi,

我遇到过类似的问题,如果自己写填充算法,非常麻烦。
建议使用 CreatePolygonRgn 创建一个 Region,然后用 FillRegion 填充

比你自己写容易得多:)
shan_hy 2004-04-13
  • 打赏
  • 举报
回复
用polygon,平行线要是没有特殊要求还不如创建个位图刷子,要不就直接用系统提供的那几种刷子好了

19,468

社区成员

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

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