计算机图形学之光栅图形学算法

论坛 期权论坛     
匿名技术用户   2021-1-11 22:28   68   0
<div class="blogpost-body" id="cnblogs_post_body">
<h1><span style="font-size:18pt;">计算机图形学概论</span></h1>
<h2><span style="font-family:&#39;宋体&#39;;">基本概念</span></h2>
<p><span style="font-size:16px;">1、一般来说要在计算机上生成一幅表示物体的图像有三步:造型技术;光照模型;绘制(渲染)技术</span></p>
<p><span style="font-size:16px;">2、帧缓冲器</span></p>
<p><span style="font-size:16px;">3、分辨率:屏幕分辨率;显示分辨率;显卡分辨率</span></p>
<p><span style="font-size:16px;">4、显示器点距(越小越好,一般14或15寸电脑显示器点距为0.27mm)</span></p>
<p><span style="font-size:16px;">5、图形与图像的区别</span></p>
<p><span style="font-size:16px;">6、位图(点阵图)和矢量图的区别:1)存储方式的区别:点阵文件是存储图的各个像素点的位置信息、颜色信息以及灰度信息。矢量文件通常用图形的形状参数和属性参数来表示图形。2)缩放的区别:位图与分辨率有关而矢量图与分辨率无关。3)存储格式的区别。</span></p>
<p><span style="font-size:16px;">7、计算机图形系统的组成:输入,存储,交互,计算,输出</span></p>
<h2><span style="font-family:&#39;宋体&#39;;">简单计算</span></h2>
<p><span style="font-size:16px;">1、显示颜色为64K,分辨率为1024*1024,至少需要的帧缓存容量为:2M  </span></p>
<h1><span style="font-size:18pt;">光栅图形学算法</span></h1>
<p><span style="font-size:16px;">  光栅图形算法多数属于计算机图形的底层算法,很多图形学的基本概念和思想都在这一部分。研究内容主要有:</span></p>
<p><em><span style="font-size:16px;">  ~直线段的扫描转换算法</span></em></p>
<p><em><span style="font-size:16px;">  ~多边形的扫描转换与区域填充算法</span></em></p>
<p><em><span style="font-size:16px;">  ~裁剪算法</span></em></p>
<p><em><span style="font-size:16px;">  ~反走样算法</span></em></p>
<p><em><span style="font-size:16px;">  ~消隐算法</span></em></p>
<p><span style="font-size:16px;">一、直线段的扫描转换算法</span></p>
<p><span style="font-size:16px;">  直线是最基本的图形,一个动画或真实感图形往往需要调用成千上万次画线程序,因此直线算法的好坏与效率将直接影响图形的质量和显示速度。在数学上,直线上有无穷多个点。但在计算机光栅显示器上需要用有限个像素点去无限逼近这无穷多个点,因此就需要知道这些像素点的x,y坐标。<br></span></p>
<p><span style="font-size:16px;"><img alt="" height="249" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-6900478bbe2adfe70fcdb9d82d8e350f.png" style="margin-left:auto;" width="489"></span></p>
<p><span style="font-size:16px;">1、DDA画线算法</span></p>
<p><span style="font-size:16px;">   在确定像素点位置时可以利用直线方程 y &#61; kx &#43; b , 根据x点的坐标得到y点的坐标,但是这样计算会使用到乘法,若是能将乘法运算转换成加法运算,效率就会提高。<span style="color:#888888;"><strong>数值微分DDA</strong></span>(Digital Differential Analyzer)法引进图形学中一个很重要的思想——<span style="color:#888888;"><strong>增量思想</strong></span>。</span></p>
<p><span style="font-size:16px;"><img alt="" height="192" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-ff2a54f3ebe6e83ab47f316e08e41cb9.png" style="margin-left:auto;" width="387"></span></p>
<p> </p>
<p>   <span style="font-size:16px;"> 假设x0已知,每次沿x轴方向前进一个像素(步长为1),可以计算出相应的y值。因为像素点的坐标为整数,所以还要将计算得到的y值进行取整处理,取整的方法是将其<span style="color:#888888;"><strong>加0.5再取整</strong></span>。如下推论可以得到增量公式,它的含义是当前y值等于前一步的y值加上斜率k,k称为增量。</span></p>
<p> <img alt="" height="259" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-72ed1f691b3186d49b2bc1bdcfc60a56.png" style="margin-left:auto;" width="560"></p>
<p> <span style="font-size:16px;">2、中点画线算法</span></p>
<p><span style="font-size:16px;">    中点画线算法不使用直线的斜截式方程,而使用直线的一般式方程F(x, y) &#61; Ax &#43; By &#43; C 。一条直线将平面划分为三个部分:直线上的点、直线上方的点和直线下方的点。中点画线算法每次在x方向上的步长为1,而在y方向上要不要变化需要判断。其中判断方法是取Pu和Pd的中点M,判断M点在Q点的上方还是下方。若M点在Q点的下方,说明Pu点距离直线更近,所以选择Pu点;若M点在Q点的上方,说明Pd点距离直线更近,所以选择Pd点;若M点正好位于Q点处,则选择P
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP