美文网首页
图形学1:图形生成算法

图形学1:图形生成算法

作者: susu2016 | 来源:发表于2016-06-18 21:41 被阅读384次

这是图形学期末复习攻略噢

一、图形生成算法

直线段扫描转换:(DDA算法、Bresenham画线算法、中点画线法)

圆弧扫描转换:(Bresenham画圆算法、中点画圆算法)

考一道大题,题目类型为给出一条直线或圆画图。(这是老师说的)

习题:

使用直线扫描方法绘制点P(0,0)到P(8,5)的直线段,分别使用如下方法绘制。1)DDA画线; 2)Bresenham画线;3)中点画线

答案见 "第二次作业答案.doc"

DDA

输入:起始点(x0,y0)、终点(x1,y1)
求斜率:m=(y1-y0)/(x1-x0)
for (x=x0; x≤x1, x++)
{   setpixel(x, int(y+0.5));
    y=y+m;
}

解题技巧:
先写第一列和第三列,第一列为自然数,第三列为等比数列。将第三列取整得到第二列。

注意:
当|m|>1时,必须把x,y地位互换, y每增加1,x相应增加1/m。

DDA算法缺点:
在此算法中,y、m必须是float,且每一步都必须对y进行舍入取整,不利于硬件实现。

Bresenham画线算法

|m|<1时的算法:

  1. 输入线段的两个端点,并将左端点存储在(x0, y0)中。

  2. 画第一个点

  3. 计算
    p0=2Δy-Δx

  4. 从k=0开始,在沿线路径的每个xk处,进行两个步骤地判断:

  5. 重复步骤4, 共Δx次

#解题技巧:

首先计算几个常量。在斜率为正时,d的变化趋势是:d大于0,y加d减,d小于0,y不变d加。

中点画线算法

假设直线方程为:F(x,y)=ax+by+c=0

欲判断M点是在Q点上方还是在Q点下方,只需把M代入F(x,y),并检查它的符号。

算法步骤:

    d0=2(a+0.5b)
    若d≥0, 增量为2a ,y不变
    若d<0,增量为2(a+b), y加1

解题技巧:

  1. 注意b要大于零,否则结果会反过来
  2. 计算初始d时记得乘2
  3. 解题时首先计算常量2a和2(a+b),这两个数一正一负。当直线斜率为正时,d为正,y不变 d减小,d为负,y加1 d增加。

中点画圆

算法步骤

  • d<0 上点

  • d>=0 下点

      初始化: d=1.25-R、x=0、y=R
      绘制点(x,y)及其在八分圆中的另外七个对称点
      if d<0 
          d=d+2x+3 (x,y)->(x+1,y)
      if d>=0 
          d=d+2(x-y)+5 (x,y)->(x+1,y-1)
      x<y 结束
    

解题技巧:

  1. d的递推公式可以自己推出来
  2. 把握好y和d的增减趋势,所有情况一律为d正则减,d负则加,可以作为验算根据。

(未完待续)

相关文章

  • 图形学1:图形生成算法

    这是图形学期末复习攻略噢 一、图形生成算法 直线段扫描转换:(DDA算法、Bresenham画线算法、中点画线法)...

  • 图形学::序

    图形学是研究图形生成、存储和处理的学科 交互式图形学是根据交互动态地改变图形属性的学科 图形学研究如下: 1、在计...

  • OpenGL DDA画线算法

    要求:构造完整的DDA画线算法程序 DDA算法:计算机图形学中基于直线的微分方程来生成直线的算法。 具体步骤:输入...

  • 计算机图形学基础重点

    计算机图形学基础重点 计算机图形学的定义:  计算机图形学(CG)是研究怎样利用计算机来显示、生成和处理图形的原理...

  • OpenGL:三维数学基础坐标系、向量、矩阵

    一、计算机图形学 计算机图形学(Computer Graphics)是一种使用数学算法将二维或三维图形转化为计算机...

  • 计算机图形学与Shader

    一、计算机图形学 1. 概述 Unity的代码在CPU中运行,图形学的代码在GPU中运行 图形学使用CG(C Gr...

  • 计算机图形学的一些基本算法-JavaScript实现

    computer-graphics 图形学的一些基本算法,实现的算法如下 DDA算法画直线 中点算法画直线 Bre...

  • webgl 1.开始

    是先学习计算机图形学还是先学习 OpenGL ?我建议先熟悉 OpenGL, 大体了解图形学编程。计算机图形学偏底...

  • 计算机图形学-绪论

    什么是计算机图形学? 利用计算机研究图形的表示、生成、处理、显示的学科 图形与图像? 图像是指计算机内以位图形式存...

  • 计算机图形学算法-光栅图形学

    直线段的扫描转换算法(一) 1.1 直线段扫描转换算法概述: 光栅显示器屏幕上的直线核心方法:用离散像素点逼近直线...

网友评论

      本文标题:图形学1:图形生成算法

      本文链接:https://www.haomeiwen.com/subject/znhbdttx.html