查看和剪切
剪切在计算机图形学中的主要用途是移除查看窗格之外的对象、线条或线段。查看变换对点相对于查看体积 − 的位置不敏感,尤其是查看器 − 后面的点,因此必须在生成视图之前移除这些点。
点剪切
从给定窗口剪切一个点非常简单。考虑下图,其中矩形表示窗口。点剪切告诉我们给定点 (X, Y) 是否在给定窗口内;并决定我们是否使用窗口的最小和最大坐标。
如果 X 位于 Wx1 ≤ X ≤ Wx2 之间,则给定点的 X 坐标位于窗口内。同样,如果 Y 位于 Wy1 ≤ Y ≤ 之间,则给定点的 Y 坐标位于窗口内Wy2。

线裁剪
线裁剪的概念与点裁剪相同。在线裁剪中,我们将裁剪窗口外的线部分,只保留窗口内的部分。
Cohen-Sutherland 线裁剪
此算法使用裁剪窗口,如下图所示。裁剪区域的最小坐标为$(XW_{min,} YW_{min})$,裁剪区域的最大坐标为$(XW_{max,} YW_{max})$。

我们将使用 4 位来划分整个区域。这 4 位代表区域的顶部、底部、右侧和左侧,如下图所示。此处,TOP 和 LEFT 位设置为 1,因为它是 TOP-LEFT 角。

对于线 −,有 3 种可能性
线可以完全在窗口内(此线应被接受)。
线可以完全在窗口外(此线将完全从区域中删除)。
线可以部分在窗口内(我们将找到交点并仅绘制区域内的那部分线)。
算法
步骤 1 − 为每个端点分配一个区域代码。
步骤 2 − 如果两个端点的区域代码都是 0000,则接受此行。
步骤 3 − 否则,对两个区域代码执行逻辑 AND 运算。
步骤 3.1 − 如果结果不是 0000,则拒绝该行。
步骤 3.2 − 否则您需要剪辑。
步骤 3.2.1 −选择窗口外的线的端点。
步骤 3.2.2 − 找到窗口边界的交点(基于区域代码)。
步骤 3.2.3 − 用交点替换端点并更新区域代码。
步骤 3.2.4 − 重复步骤 2,直到我们找到一条被轻易接受或被轻易拒绝的裁剪线。
步骤 4 − 对其他线重复步骤 1。
Cyrus-Beck 线裁剪算法
该算法比 Cohen-Sutherland 算法更有效。它采用参数线表示和简单点积。

线的参数方程为 −
P0P1:P(t) = P0 + t(P1 - P0)
让 Ni 为向外的法线边 Ei。现在在边缘 Ei 上选取任意点 PEi,然后点积 Ni.[P(t) – PEi] 确定点 P(t) 是"在剪辑边缘内"还是"在剪辑边缘外"还是"在剪辑边缘上"。
如果 Ni.[P(t) – PEi] < 0
,则点 P(t) 在内部如果 Ni.[P(t) – PEi] > 0,则点 P(t) 在外部
如果 Ni.[P(t) – PEi] = 0(交点),则点 P(t) 在边缘上
Ni.[P(t) – PEi] = 0
Ni.[ P0 + t(P1 - P0) – PEi] = 0 (Replacing P(t) with P0 + t(P1 - P0))
Ni.[P0 – PEi] + Ni.t[P1 - P0] = 0
Ni.[P0 – PEi] + Ni∙tD = 0 (substituting D for [P1 - P0])
Ni.[P0 – PEi] = - Ni∙tD
t 的方程变为,
$$t = frac{N_{i}.[P_{o} - P_{Ei}]}{{- N_{i}.D}}$$
它对以下条件有效 −
- Ni ≠ 0(不能发生错误)
- D ≠ 0(P1 ≠ P0)
- Ni∙D ≠ 0(P0P1不平行于 Ei)
多边形裁剪(Sutherland Hodgman 算法)
也可以通过指定裁剪窗口来裁剪多边形。 Sutherland Hodgeman 多边形裁剪算法用于多边形裁剪。在此算法中,多边形的所有顶点都根据裁剪窗口的每个边缘进行裁剪。
首先根据多边形窗口的左边缘对多边形进行裁剪,以获取多边形的新顶点。这些新顶点用于根据裁剪窗口的右边缘、上边缘、下边缘对多边形进行裁剪,如下图所示。

在使用裁剪窗口处理多边形的边缘时,如果边缘不完全在裁剪窗口内,则会找到交点,并且会裁剪从交点到外边缘的部分边缘。下图显示了左、右、上和下边缘的裁剪 −

文本裁剪
在计算机图形中,各种技术都可用于提供文本裁剪。这取决于用于生成字符的方法和特定应用程序的要求。文本裁剪有三种方法,如下所示 −
- 全部或无字符串裁剪
- 全部或无字符裁剪
- 文本裁剪
下图显示了全部或无字符串裁剪 −

在全部或无字符串剪辑方法中,我们要么保留整个字符串,要么根据剪辑窗口拒绝整个字符串。如上图所示,STRING2 完全在剪辑窗口内,因此我们保留它,而 STRING1 仅部分在窗口内,我们拒绝它。
下图显示全部或无字符剪辑 −

此剪辑方法基于字符而不是整个字符串。在此方法中,如果字符串完全在剪辑窗口内,则我们保留它。如果它部分在窗口外,则 −
您只拒绝字符串在窗口外的部分
如果字符在剪辑窗口的边界上,则我们丢弃整个字符并保留其余字符串。
下图显示文本剪辑 −

此剪辑方法基于字符而不是整个字符串。在此方法中,如果字符串完全在剪辑窗口内,则我们保留它。如果它部分在窗口之外,那么
您只拒绝字符串在窗口之外的部分。
如果字符在剪辑窗口的边界上,那么我们只丢弃字符在剪辑窗口之外的部分。
位图图形
位图是描述图像的像素集合。它是一种计算机图形,计算机使用它来存储和显示图片。在这种类型的图形中,图像是逐位存储的,因此它被称为位图图形。为了更好地理解,让我们考虑以下使用位图图形绘制笑脸的示例。

现在我们将看到这个笑脸在计算机图形中是如何一点一点存储的。

通过仔细观察原始笑脸,我们可以看到有两条蓝线,在上图中分别表示为 B1、B2 和 E1、E2。
同样,笑脸分别使用 A4、B5、C6、D6、E5 和 F4 的组合位来表示。
位图图形的主要缺点是 −
我们无法调整位图图像的大小。如果您尝试调整大小,像素会变得模糊。
彩色位图可能非常大。