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


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

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

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

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

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

顺序无所谓。

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

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

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

好了,理论讲完了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值