📝 计算机图形学
98篇技术文档📅  最后修改于: 2020-12-20 03:52:57        🧑  作者: Mango
扫描转换定义这是将图形对象表示为像素集合的过程。图形对象是连续的。使用的像素是离散的。每个像素可以具有开或关状态。计算机的视频显示设备的电路能够将二进制值(0、1)转换为像素开启和像素关闭信息。 0由像素关闭表示。使用像素开来表示图1。使用此能力图形...
📅  最后修改于: 2020-12-20 03:53:53        🧑  作者: Mango
扫描转换点图形显示器上的每个像素都不代表一个数学点。相反,它表示理论上可以包含无数个点的区域。扫描转换点包括照亮包含该点的像素。示例:显示坐标点如图所示,两者都将由像素(2,1)表示。通常,点p(x,y)由x的整数部分和y的整数部分表示,像素[[INT(x),INT(y)。...
📅  最后修改于: 2020-12-20 03:54:54        🧑  作者: Mango
扫描转换直线一条直线可以由两个端点和一个方程式定义。在图1中,两个端点由(x1,y1)和(x2,y2)描述。直线方程式用于确定这两个端点之间所有点的x,y坐标。使用直线方程,y = mx + b其中m =&b = y中断,我们可以通过将x从x = x1递增到x = x2来找到y的值。通过对这些计算出的x,y值进行扫描转换,我们将线条表示为像素序列。好的线描算法的属性:1.线应显示为直线:我们必须通...
📅  最后修改于: 2020-12-20 03:55:54        🧑  作者: Mango
DDA算法DDA代表数字差分分析仪。它是行扫描转换的增量方法。在这种方法中,计算是在每个步骤中执行的,但要使用先前步骤的结果。假设在步骤i,像素为(xi,yi)步骤i的方程线yi= mxi + b………………….方程1下一个值将是yi + 1= mxi + 1+ b …….方程2m =yi + 1-yi= ∆y ………………….方程3yi + 1-xi= ∆x …………………. 4yi + 1= ...
📅  最后修改于: 2020-12-20 03:56:58        🧑  作者: Mango
布雷森汉姆线算法该算法用于扫描转换线。它是由Bresenham开发的。这是一种有效的方法,因为它只涉及整数加法,减法和乘法运算。这些操作可以非常快速地执行,因此可以快速生成线。在此方法中,选择的下一个像素是与真实线距离最小的像素。该方法的工作方式如下:假设一个像素P1'(x1',y1'),然后选择我们可能工作到深夜的后续像素,在水平方向上一次朝P2'(x2',y2)一个像素位置')。随时选择一个像...
📅  最后修改于: 2020-12-20 09:30:19        🧑  作者: Mango
定义圈子:圆是八向对称图形。圆的形状在所有象限中都相同。在每个象限中,有两个八分圆。如果完成了一个八分圆点的计算,则可以使用八向对称的概念轻松计算其他七个点。对于绘图,圆将其视为原点。如果一个点是P1(x,y),那么其他七个点将是因此,我们将仅计算45°弧度。从中可以轻松确定整个圆。如果要在屏幕上显示圆,则putpixel函数用于八个点,如下所示:putpixel(x,y,颜色)示例:让我们确定圆...
📅  最后修改于: 2020-12-20 09:31:18        🧑  作者: Mango
使用多项式方法定义一个圆:第一种方法使用二阶多项式方程式定义一个圆,如图所示:y2= r2-x2其中x = x坐标y = y坐标r =圆半径算法:第一步:设置初始变量r =圆半径(h,k)=圆心坐标x = oI =步长x结束=步骤2:测试以确定是否已对整个圆进行了扫描转换。步骤3:计算y =步骤4:绘制关于当前(x,y)坐标中心(h,k)对称找到的八个点。绘图(x + h,y + k)绘图(-x ...
📅  最后修改于: 2020-12-20 09:32:15        🧑  作者: Mango
使用极坐标定义一个圆:定义圆的第二种方法利用极坐标,如图所示:x = r cosθy = r sinθ算法:步骤1:设置初始变量:r =圆半径步骤2:如果θ>θ结束,则停止。第三步:计算步骤4:在当前(x,y)坐标上绘制对称找到的八个点,即中心(h,k)。绘图(x + h,y + k)绘图(-x + h,-y + k)步骤5:递增θ=θ+ i步骤6:转到步骤(ii)。程序使用极坐标画一个圆:输出:...
📅  最后修改于: 2020-12-20 09:33:22        🧑  作者: Mango
布雷森汉姆的循环算法:使用Bresenham算法对圆进行扫描转换的工作方式如下:点从90°到45°生成,将仅沿+ x&-y方向移动,如图所示:真实圆的最佳近似将由栅格中与真实圆的距离最小的那些像素描述。我们想从中产生点90°至45°。假定最后的经扫描转换的像素是P1,如图2所示。通过执行以下两个操作之一,可以找到最接近真实圆的每个新点。在x方向上移动一个单位或在x方向上移动一个单位,在y方向上移动...
📅  最后修改于: 2020-12-20 09:34:27        🧑  作者: Mango
中点圆算法它基于以下函数,用于测试任意点(x,y)与以原点为中心的半径r的圆之间的空间关系:现在,考虑像素T和像素S之间的中间点的坐标这称为中点(xi + 1,yi-),然后使用它来定义决策参数:Pi= f(xi + 1,yi-)=(xi + 1)2+(yi-)2-r2……方程2如果Pi是-ve⟹中点在圆内,我们选择像素T如果Pi是+ ve⟹中点在圆之外(或在圆上),我们选择像素S。下一步的决策参...
📅  最后修改于: 2020-12-20 09:35:26        🧑  作者: Mango
扫描转换椭圆:椭圆也是一个对称的图形,如圆形,但是是四向对称,而不是八向对称。实现椭圆绘图算法的程序:输出:有两种定义椭圆的方法:定义椭圆的多项式方法定义椭圆的三角法...
📅  最后修改于: 2020-12-20 09:36:24        🧑  作者: Mango
多项式方法:椭圆具有长轴和短轴。如果a1和b1分别是长轴和短轴。椭圆的中心是(i,j)。 x的值将从i递增到1,y的值将使用以下公式计算多项式方法的缺点:它需要平方值。因此需要浮点计算。为此类计算而开发的例程非常复杂且缓慢。算法:1.设置初始变量:a =主轴长度; b =短轴长度; (h,k)=椭圆中心的坐标; x = 0; i =步骤; x末端= a。2.测试以确定整个椭圆是否已被扫描转换。如果...
📅  最后修改于: 2020-12-20 09:37:25        🧑  作者: Mango
三角法:以下等式用三角函数定义了一个椭圆,如图所示:x = a * cos(θ)+ h并且在这种方法中,θ的值从0变到<img class=”vmiddle” src=”https://static.javatpoint.com/tutorial/computer-graphics/images/computer-graphics-trignometric-method.png” alt=”三角法...
📅  最后修改于: 2020-12-20 09:38:40        🧑  作者: Mango
中点椭圆算法:这是一种增量方法,用于扫描转换以标准位置为原点的椭圆,即长轴和短轴平行于坐标系轴。它与中点圆算法非常相似。由于四向对称性,我们需要考虑第一象限中的整个椭圆曲线。首先,我们重写椭圆方程并定义函数f,该函数可用于确定两个候选像素之间的中点是在椭圆的内部还是外部:现在将椭圆曲线从(0,b)到(a,0)在点Q处分成两部分,曲线的斜率是-1。曲线的斜率由f(x,y)= 0定义<img clas...
📅  最后修改于: 2020-12-20 09:39:37        🧑  作者: Mango
填充区域基元:区域填充是图像或区域的填充过程。填充可以是边界或内部区域,如图2所示。边界填充算法用于填充边界,泛洪填充算法用于填充内部。边界填充算法:该算法使用递归方法。首先,考虑称为种子的起始像素。该算法检查边界像素或相邻像素是否着色。如果相邻像素已被填充或着色,则将其保留,否则填充它。使用四个连接的方法或八个连接的方法完成填充。四个连接的方法比八个连接的方法更合适。1.四种连接的方法:在这种方...