您的位置:首页 > 其它

自制3D显示引擎八:矩形窗口裁剪

2017-01-22 03:37 295 查看


只讲原理,代码需要自己构思、设计,这种算法只有自己写出来才能真正的记在脑子里。

①:正方形区域为显示区域,该三角形为经典的多次裁剪三角形。

三角形与显示区域的相交情况有好几种:三角形全部在显示区域内、外,部分在显示区域内;三角形的边框并没有和显示框相交,却有显示部分。

网上也有一些相关的算法,但是总结的不是很正确,很清楚。

正确的方法是用每条边界去裁剪三角形,留下的继续裁剪。直到每条边都去裁剪过。

顺序无所谓。

在这里需要判断点在边界的内外,很好处理。

裁剪的时候是一条边一条边的裁,两端点一内一外时裁剪,外点由新点(此边与边界的交点)替换。此处需注意,裁剪后的形状比之前的形状多一条边,就是多一个顶点,写代码的时候需仔细的设计代码。

一个三角形被矩形裁剪完后,出现的形状里,边数最多的为七边形,7=3+4,预计生成的多边形顶点数为源形状的顶点数+4。

好了,理论讲完了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  3d 引擎 算法