图形学基础 | 裁剪算法

裁剪算法
待补充

计算机图形学之裁剪

* 3D裁剪
* 2D裁剪

裁剪算法: 用来消除显示区域外的图形部分.

二维裁剪算法

* 点的裁剪
* 线段的裁剪(直线段)
* 区域裁剪(多变形裁剪)

二维点的裁剪

裁剪窗口为一个标准的矩形:
Xmin<=X<=Xmax
Ymin<=Y<=Ymax在这里插入图片描述

二维线段的裁剪

  • 线段与窗口边界的求交运算耗时.
  • 因此.较少交点的计算是每一种线段裁剪算法的主要目标.

判断线段是否完全在平面内

  • 线段的两个端点都在平面内.那么该线段就在平面内.

判断线段是否完全在平面外或者部分在平面外

  • 要求交

Cohen-Sutherland线段裁剪算法

在这里插入图片描述
思想: 编码 将平面的四条边延长划分出9个区域.编码如上.

裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后进行二进制的“或”运算和“与”运算

  • 若code1|code2=0,对直线段应简取之,说明该直线段在窗口内
  • code1&code2 不等于 0,对直线可简弃之
  • 若上述两条件均不成立,则需要求出直线段与窗口边界的交点,在交点处把线段一分为二

适用于:

  • 大部分线段在窗口内. 和 大部分线段在窗口外.
    存在的问题:
  • 最坏情况下,被裁剪线段与窗口4条边计算交点,然后所得的裁剪结果却可能是全部舍弃

代码实现:

https://blog.csdn.net/qq_32126633/article/details/78724987

梁-Barsky线段裁剪算法

在这里插入图片描述
待补充.

多边形裁剪

用直线裁剪法裁剪左边多边形,得到右边的图形
在这里插入图片描述
即得到一系列不连续的直线段!得到的结果是不正确的
而实际上,应该得到的是下图所示的右边界的区域:
在这里插入图片描述
多边形裁剪算法的输出应该是裁剪后的多边形边界的定点序列!

Sutherland-Hodgman算法

https://www.bbsmax.com/A/mo5kBYLJwR/
https://blog.csdn.net/damotiansheng/article/details/43274183

待补充.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值