前言 在数学上,理想的直线是没有宽度的,它是由无数个点构成的集合。对直线进行光栅化时,只能在显示器说给定的有限个像素组成的矩阵中,确定最佳逼近于该直线的一组像素,并且按扫描线顺序。 本节介绍绘制线宽为一个像素的直线的三个常用算法:数值微分,中点画线和Bresenham算法。 数值微分法 已知过端点 ...
分类:
编程语言 时间:
2017-03-18 23:54:54
阅读次数:
365
原文:http://www.cnblogs.com/flash3d/archive/2012/01/30/2332158.html 源码:http://files.cnblogs.com/flash3d/alc.rar 前几天研究了Bresenham直线扫描算法。颇受其一些优化策略的启发,故想将其推 ...
分类:
其他好文 时间:
2016-11-22 17:32:45
阅读次数:
229
原文: 计算机图形学框架 图元光栅化标准 直线要直 图元终点要准 图元生成的亮度、色泽粗细要均匀 快速计算 直线光栅化算法 逐点比较法 数值微分法 中点Bresenham算法 圆的光栅化算法 简单方程产生圆弧 Bresenham算法产生圆弧 多边形填充 扫描线填充 宽图元 复制像素画宽图元 移动画笔 ...
分类:
其他好文 时间:
2016-07-10 00:56:14
阅读次数:
183
用于沿线段路径绘制像素的三种方法是DDA算法、Bresenham算法和中点算法,Bresenham算法和中点算法是等同的并且是最有效的。沿线段路径的像素的颜色位存储按照递增地计算内存地址的方式而有效完成。任何线段生成算法都可以通过分割线段并将分割的线段分布到可用处理器上来获得并行的实现。
圆和椭圆采用中点算法并根据其对称性进行有效而精确的扫描转换。其他二次曲线(抛物线和双曲线)也可以使用类似的方法进行绘制。分段的连续多项式的样条曲线广泛地应用于动画和计算机辅助设计中。曲线生成的并行实现能通过与...
分类:
其他好文 时间:
2016-06-12 02:48:38
阅读次数:
249
#include<iostream>#include<graphics.h> // 这样引用 EasyX 图形库#include<conio.h>#include<time.h>#include<math.h>#include<stdlib.h>using namespace std; //Bres ...
分类:
编程语言 时间:
2016-06-06 13:45:44
阅读次数:
249
如同光栅画线算法,每步都以间隔单位取样并确定离指定圆最近的像素位置。为了减少计算量,可以将圆八分,根据Bresenham画线算法。我们首先给出点位置函数: 即可得知:(1), 位于圆边界内;(2),位于圆边界上;(3), 位于圆边界外。 第一象限中,假设在绘制了像素点,下一步需要确定绘制的位置是,还 ...
分类:
编程语言 时间:
2016-05-25 20:21:49
阅读次数:
348
在曲线生成中使用的并行方法类似于显示线段中使用的方法。我们既可采用顺序算法按曲线分段分配处理器,也可以提出其他方法将处理器分配给屏幕的不同区域。
显示圆的并行中点方法是,将45°到90°的圆弧分成等长子圆弧,并给每段子圆弧配置一个处理器。然后类似于并行Bresenham画线算法,需要对每个处理器建立初始y值并确定参数pk的值。接着计算整个子圆弧的像素位置,并通过对称性得到其他八分圆中的位置。同样,并行椭圆中点算法将第一象限内的椭圆弧分割成等长弧,并将这些弧分配给各个处理器,在其他象限中的像素位置可由...
分类:
编程语言 时间:
2016-05-06 15:08:23
阅读次数:
191
而利用并行计算机,则可通过将计算分割到可用的多个处理器中来得到线段的像素位置。分割问题的一种解决方法是将现有的顺序算法放到多个处理器上。我们也可以寻找其他处理办法,从而使像素位置能以并行方式有效地计算。在设计并行算法中,重要的是要考虑平衡可用处理器间的处理负载。
给定np个处理器,我们可以通过把线段分割成np个子段,并在每个子段中同时生成线段而建立起并行的Bresenham画线算法。
上面讨论过的线段生成算法顺序地确定像素位...
分类:
编程语言 时间:
2016-04-19 12:20:57
阅读次数:
222
Bresenham画线算法是由Bresenham提出的一种精确而有效的光栅线生成算法,该算法仅仅使用增量整数计算。另外Bresenham算法还可用于显示圆和其他曲线。图3.8和图3.9给出了绘制线段的屏幕局部。垂直轴表示扫描线位置,水平轴标识像素列。在这个例子中,我们以单位x间隔取样,并且需要确定每次取样时两个可能的像素位置中的哪一个更接近于线路径。从图3.8中的左端点开始,需要确定下一个取样像素位置是(11, 1l)还是(1 1, 12)。类似地,图3.9则给出了像素位置(50,50)为左端点的具有负斜率...
分类:
编程语言 时间:
2016-04-19 12:20:57
阅读次数:
329
恢复内容开始 一、实验目的 1.掌握在MFC中搭建图形绘制的基本框架的方法; 2.将直线的中点Bresenham算法转化成可执行代码。 二、实验内容 1. 通过分析具体数据在中点Bresenham算法上的执行过程,绘制算法执行流程图或N-S图,在MFC中实现该算法,要求编写函数实现任意给定两点绘制线 ...
分类:
编程语言 时间:
2016-03-29 20:55:57
阅读次数:
223