计算机图形学(二)输出图元_7_并行曲线算法

并行曲线算法

在曲线生成中使用的并行方法类似于显示线段中使用的方法。我们既可采用顺序算法按曲线分段分配处理器,也可以提出其他方法将处理器分配给屏幕的不同区域。

显示圆的并行中点方法是,将45°到90°的圆弧分成等长子圆弧,并给每段子圆弧配置一个处理器。然后类似于并行Bresenham画线算法,需要对每个处理器建立初始y值并确定参数pk的值。接着计算整个子圆弧的像素位置,并通过对称性得到其他八分圆中的位置。同样,并行椭圆中点算法将第一象限内的椭圆弧分割成等长弧,并将这些弧分配给各个处理器,在其他象限中的像素位置可由对称性得到。圆和椭圆的屏幕分段方案是,将每条与曲线相交的扫描线分配给相应的处理器。此时,每个处理器根据圆或椭圆方程计算曲线一与扫描线的相交坐标。

为了显示椭圆弧和其他曲线,我们可以简单地使用扫描线分段方法。每个处理器应用曲线方程,从而确定.与为其设置的扫描线的交点位置。为每个处理器分配,一组像素后,处理器计算每一个像素到曲线的距离(或距离的平方)。如果计算出的距离小于预先指定的值,就绘制出该像素。

时间: 2024-10-27 19:38:47

计算机图形学(二)输出图元_7_并行曲线算法的相关文章

计算机图形学(二)输出图元_4_并行画线算法

并行画线算法 本来在word中是有右下数的,一编辑在csdn中编辑就没有了.                            上面讨论过的线段生成算法顺序地确定像素位置.而利用并行计算机,则可通过将计算分割到可用的多个处理器中来得到线段的像素位置.分割问题的一种解决方法是将现有的顺序算法放到多个处理器上.我们也可以寻找其他处理办法,从而使像素位置能以并行方式有效地计算.在设计并行算法中,重要的是要考虑平衡可用处理器间的处理负载. 给定np个处理器,我们可以通过把线段分割成np个子段,并在每

计算机图形学(二)输出图元_3_画线算法_2_DDA算法

DDA算法 数字微分分析仪(digital differential analyzer, DDA)方法是一种线段扫描转换算法,基于使用等式(3.4)或等式(3.5)计算的&x或&y.在一个坐标轴上以单位间隔对线段取样,从而确定另一个坐标轴上最靠近线路径的对应整数值.首先考虑如图3.6所示的具有正斜率的线段.例如,如果斜率小于等于1,则以单位x间隔(&x = 1)取样,并逐个计算每一个y值: 下标k取整数值,从第一个点1开始递增直至最后端点.由于m可以是0与1之间的任意实数,所以计算

计算机图形学(二)输出图元_3_画线算法_3_Bresenham画线算法

Bresenham画线算法 本来在word中是有右下数的,一编辑在csdn中编辑就没有了.                         Bresenham画线算法是由Bresenham提出的一种精确而有效的光栅线生成算法,该算法仅仅使用增量整数计算.另外Bresenham算法还可用于显示圆和其他曲线.图3.8和图3.9给出了绘制线段的屏幕局部.垂直轴表示扫描线位置,水平轴标识像素列.在这个例子中,我们以单位x间隔取样,并且需要确定每次取样时两个可能的像素位置中的哪一个更接近于线路径.从图3.

计算机图形学(二)输出图元_3_画线算法_1_直线方程

画线算法 场景中的直线段由其两端点的坐标位置来定义.要在光栅监视器上显示一线段,图形系统必须先将两端点投影到整数屏幕坐标,并确定离两端点间的直线路径最近的像素位置.接下来将颜色值装人帧缓存相应的像素坐标处.视频控制器从帧缓存读出写入的颜色值并绘制屏幕像素.这一过程将一线段数字化为一组离散的整数位置.一般而言,这些位置是实际线路径的近似.例如,计算出的线位置(10.48, 20.51)转换为像素位置(10, 21).坐标值舍入到整数,引起除水平和垂直以外所有线段的阶梯效应("锯齿形"),

研二寒假---关于Qt&CV曲线算法问题

目录 1.单曲线输入和绘图 1.单曲线输入和绘图 1 #include "cv_plot.h" 2 #include "ui_cv_plot.h" 3 #include <QFileDialog> //for getOpenFileName() 4 #include <QDebug> 5 6 CV_Plot::CV_Plot(QWidget *parent) : 7 QWidget(parent), 8 ui(new Ui::CV_Plot)

计算机图形学之数字微分分析画线算法

现代计算机绘制,我们程序员经常会碰到画图的编程问题,并且现在的画图的API很多,换句话说,图形API非常丰富,从TC的graphic到Windows的GDI/GDI+,以及跨平台的开放标准OpenGL.这些API都提供了基本的绘图函数,如绘制直线,圆以及椭圆之类的. 画直线的算法也叫做直线的光栅化,我们知道,我们的计算机显示的屏幕实际上是一个个的像素组成的,绘图算法就是要在逼近直线的像素上进行着色输出. 是选择直线两端点变化较大的一个方向,从起始点开始,逐次递推得到着色的结果. DDA算法的流程

计算机图形学(二)输出图元_20_章节总结(上)

输出图元章节总结 发了好久第2章终于结束了,本章中讨论的输出图元为使用直线.曲线.填充区域.单元阵列样式和文本构造图形提供了基本的工具.我们通过在笛卡儿世界坐标系统中给出几何描述来指定图元. 用于沿线段路径绘制像素的三种方法是DDA算法.Bresenham算法和中点算法,Bresenham算法和中点算法是等同的并且是最有效的.沿线段路径的像素的颜色位存储按照递增地计算内存地址的方式而有效完成.任何线段生成算法都可以通过分割线段并将分割的线段分布到可用处理器上来获得并行的实现. 圆和椭圆采用中点算

计算机图形学(二)输出图元_10_多边形填充区_1_多边形分类和识别

多边形填充区 一个多边形(polygon)在数学上定义为由三个或者更多称为顶点的坐标位置描述的平面图形,这些顶点由称为多边性的边(edge或者side)顺序连接.进一步来看,几何上要求多边形的边除了端点之外没有其他公共点.因此,根据定义,一个多边形在其单一平面上必须有其所有的顶点且边之间无交叉.多边形的例子有三角形.矩形.八边形和十六边形等.有时,任一有封闭折线边界的平面图形暗指一个多边形,而若其没有交叉边则称为标准多边形(( standard polygon)或简单多边形( simple po

计算机图形学(三)_图元的属性_5_曲线属性

曲线属性 曲线属性的参数与线段相同,可以使用各种颜色.宽度.点划线模式和有效的画笔和笔刷选择来显示曲线.采用画曲线算法来实现属性选择,这一点类似于画直线. 各种宽度的光栅曲线可用水平或垂直像素段进行显示.曲线斜率的绝对值小于1.0时,使用垂直段;斜率绝对值大于1.0时绘制水平段.图4.10给出了使用这种方法显示在第一象限中宽度为4的圆弧.利用圆的对称性,在从x = 0到x = y的八分象限内使用垂直段生成圆路径.然后对于直线y = x,将像素位置反射便得到所显示曲线的余下部分.其他四分象限内的圆