社区
数据结构与算法
帖子详情
不规则多边形裁剪(裁剪框为矩形)
Jokul_Lee
2012-06-17 04:39:32
给点建议吧同志们
问题是:超出屏幕范围的多边形,需要对其进行裁剪处理,得到一个或多个多边形。
...全文
269
1
打赏
收藏
不规则多边形裁剪(裁剪框为矩形)
给点建议吧同志们 问题是:超出屏幕范围的多边形,需要对其进行裁剪处理,得到一个或多个多边形。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
congtou_guo
2012-08-24
打赏
举报
回复
算法私信给你吧
矩形
裁剪
直线和任意多边形
矩形
裁剪
直线和任意多边形,其中
裁剪
直线是用的Liang-Barsky算法,任意多边开
裁剪
用的是Weiler—Atherton算法,调试环境是VC2005.版本是debug,所以可能你下载后不能直接运行,重新生成即可!
C#实现
不规则
图形分割成多个
矩形
组合可视化工具, 核心是一个找最大内切
矩形
的算法
C#代码,
不规则
图形分割成多个
矩形
,可视化工具, 核心是一个找最大内切
矩形
的算法 牵涉到的知识点: 1. 图片的加载和像素解析,绘制到pictureBox上 2.控制pitctureBox缩放(ctrl+滚轮)和移动 3.动态生成bitmap,绘制点和
矩形
,显示到pictureBox上 4.找出属于不同区域的相连的
不规则
图形对应的数据块 5.
不规则
图形数据查找最大内嵌
矩形
算法 6.拆分剩余上下左右4个区域,递归找到更小的
矩形
。 关联博文: https://blog.csdn.net/zhenmu/article/details/125852065
特效-多边形特效/PS高端辅助/动态人像速成特效 [精品推荐]
设计这种多边形效果时,如果纯粹的使用PS去实现的话,是一件很让人蛋疼的事情,那么采用本课的多边形特效生成器,带你装逼,带你飞,能很大程度的节省了你谈恋爱的时间,还在等神马,快动起来,打开你的电脑,马上开黑。设计,虽然是个需要多动手的工作,但是能节省时间的,必须节省。
Windows 中
不规则
窗体的编程实现
一、序言 在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的
矩形
窗体,例如我们常用的,“记事本”,“扫雷”,等等。
矩形
窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用
不规则
窗体替代原先的
矩形
窗体,将会使这类程序更添情趣。典型的例子有windows 自代的Media Player,新版本的Media Player有个控制面板的选项,选中这些面板,播放器就以选中的面板形状出现,这时的播放器比以前版本的Media Player的古老
矩形
界面要生动有趣的多了。 要实现
不规则
窗体不是太难,知道了基本原理后,你也可以创建各种有趣的
不规则
窗体。 二、实现原理 所有的 Windows 窗体都位于一个称为“region”中,窗体的大小如果超出“region”的范围,windows 会自动
裁剪
超出"region"范围那部分的窗体,使其不可见。所以,要创建
不规则
窗体有两个步骤:第一步就是创建
不规则
"region".第二步就是将窗体放到创建的“region”中。 其中第二步很简单就调用一条语句即可。在SDK中调用API函数SetWindowRgn,该函数原型如下:int SetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw ); 其中hWnd为待设置的窗体句柄,hRgn为已经创建的"region"句柄,bRedraw代表是否要重绘窗体。在MFC 中使用窗口类CWnd的成员函数int CWnd::SetWindowRgn(HRGN hRgn, BOOL bRedraw );该函数的参数意义与API中同名函数相同。 相对与第二步,创建
不规则
窗体的第一步要复杂许多,并且
不规则
窗体越复杂,创建其"region"的过程也越复杂。接下去我们将由浅入深地介绍各种创建”region”的方法。 在MFC中"region"对象,由CRgn类实现。CRgn的几乎每个成员函数都有同名的SDK API函数对应。 三、简单“region”的创建 类CRgn创建一个新的"region"的简单方法有以下几个成员函数: BOOL CRgn::CreateRectRgn( int x1, int y1, int x2, int y2 ); 创建
矩形
的“region”。 BOOL CRgn::CreateEllipticRgn( int x1, int y1, int x2, int y2 ); 创建圆形或椭圆形“region”。 BOOL CRgn::CreateRoundRectRgn( int x1, int y1, int x2, int y2, int x3, int y3 ); 创建圆角
矩形
“region”。 BOOL CRgn::CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode ); 创建多边形“region”。 这里以创建椭圆窗体为例,介绍椭圆窗体创建的方法。在创建椭圆“region”的CreateEllipticRgn函数中,x1,y1指椭圆所在
矩形
的左上角坐标,x2,y2指该
矩形
的右下角坐标。 ....... ....... ....... (附代码实现)
Cesium
不规则
多边形
裁剪
实现思路
原生的ClipingPlane不支持凹凸
多边形
裁剪
,使用RTT技术将绘制多边形渲染到图片,在将图片贴回多边形,不在多边形范围内的数据从片元着色器中discard掉 1.交互绘制
不规则
图形,获取点序列,计算为本地坐标; 2.将交互绘制内容通过离屏渲染到一张图片上,这里需要重新构造一个正交相机,设置图片颜色 3.计算
不规则
多边形的边界范围; 4.将图片及多边形范围传递到数据的片元着色器脚本中; 5.顶点着色器中将数据坐标传递到片元着色器,后续判断中使用; 6.片元着色器脚本中判断,处于传入范围中..
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章