自制3D显示引擎八:矩形窗口裁剪
2017-01-22 03:37
295 查看
只讲原理,代码需要自己构思、设计,这种算法只有自己写出来才能真正的记在脑子里。
①:正方形区域为显示区域,该三角形为经典的多次裁剪三角形。
三角形与显示区域的相交情况有好几种:三角形全部在显示区域内、外,部分在显示区域内;三角形的边框并没有和显示框相交,却有显示部分。
网上也有一些相关的算法,但是总结的不是很正确,很清楚。
正确的方法是用每条边界去裁剪三角形,留下的继续裁剪。直到每条边都去裁剪过。
顺序无所谓。
在这里需要判断点在边界的内外,很好处理。
裁剪的时候是一条边一条边的裁,两端点一内一外时裁剪,外点由新点(此边与边界的交点)替换。此处需注意,裁剪后的形状比之前的形状多一条边,就是多一个顶点,写代码的时候需仔细的设计代码。
一个三角形被矩形裁剪完后,出现的形状里,边数最多的为七边形,7=3+4,预计生成的多边形顶点数为源形状的顶点数+4。
好了,理论讲完了。
相关文章推荐
- 自制3D显示引擎十:三维坐标在屏幕上的映射
- (转)从零实现3D图像引擎:(3)超级重要的2D矩形裁剪
- 自制3D显示引擎七:填充任意多边形
- 自制3D显示引擎:目录
- 自制3D显示引擎三:画线
- 自制3D显示引擎四:画圆
- 从零实现3D图像引擎:(3)超级重要的2D矩形裁剪
- 自制3D显示引擎五:画多边形与正多边形
- 自制3D显示引擎六:填充三角形
- 自制3D显示引擎六.二:递归式填充
- 自制3D显示引擎九:三维空间的显示区域
- DirectX 3D_基础之模型表示 顶点格式 三角形 索引 虚拟摄像机 投影窗口 绘制流水线 局部坐标系 观察坐标系 世界坐标系 背面消隐 光照 裁剪 投影 视口变换 光栅化
- Unity游戏引擎挖坑记之3d游戏2d显示管理(血条、飘血)(一)
- 在Windows7的超级任务栏设置“显示桌面”按钮和“3D窗口切换按钮”的方法
- Cocos2d-x开发--使用CCRenderTexture将矩形图片裁剪成圆形显示
- 【Unity 3D 5.6版本使用(3)】点击物体弹出窗口显示状态
- 多任务GUI窗口系统(类window,有源码,支持汉字显示、顶层、非矩形和透明窗口)gicell源码
- Cocos2d-x开发--使用CCRenderTexture将矩形图片裁剪成圆形显示
- android系统方法裁剪图片部分手机显示为圆形
- 解决Extjs TriggerField在弹出窗口显示不出问题