计算机图形学 - 全斜率直线中点生成算法

  算法描述:

直线中点生成算法

  假定直线斜率k在(0,1]之间,当前像素点为,则下一个像素点有两种可选择点P1或P2。

  若P1与 P2的中点称为M,Q为理想直线与x=xp+1垂线的交点。

  •  当M在Q的下方时,则取P2为下一个像素点;

  •  当M在Q的上方时,则取P1为下一个像素点。

  这就是中点画线法的基本原理。

  

  算术推导:

  

  详细代码:Computer Graphics - code_1

   生成结果:

时间: 2024-10-15 18:52:20

计算机图形学 - 全斜率直线中点生成算法的相关文章

计算机图形学 – 椭圆的中点生成算法

算法描述: 对于一般位置的椭圆, 例如, 可将中心平移到坐标原点, 确定好中心在原点的标准位置的椭圆像素点集后,再平移到位置,将问题转变为标准位置的椭圆的绘制问题. 如果椭圆的长轴和短轴方向不与坐标轴x 和y 平行,那么可以采用旋转坐标变换的方式, 同样将问题转变为标准位置的椭圆的绘制 即. 定义下面椭圆中点算法的判别式: 则: 若< 0,说明在椭圆边界内: 若= 0,说明在椭圆边界上: 若> 0,说明在椭圆边界外: 由于椭圆的对称性, 这里只讨论第一象限椭圆弧的生成. 在处理这段椭圆弧时,

计算机图形学 - 抛物线的中点生成算法

算法描述: 对于抛物线,先分析一种最为特殊的情况,就是对称轴为y轴,且经过坐标原点.如图所示: 只要生成了这样一个抛物线,那么一般情况下的抛物线都可以凭借这种特殊情况进行平移.旋转得到.而由于该特殊情况下的抛物线在y轴两侧是对称的,所以只需要解决第一象限内的抛物线的生成就能够得到完整的图像. 那么如何得到这种特殊情况下的抛物线 由上图可知,假设一点在抛物线第一象限上从原点开始移动,并过该点A作抛物线的切线,那么根据切线的斜率k=1可以将该象限内的抛物线分为两个部分,一部分为点A左边,切线斜率全部

计算机图形学 - 圆的中点生成算法验证

算法描述: 圆的中点生成算法 如果我们构造函数 F(x,y)=x2+y2-R2,则对于圆上的点有F(x,y)=0,对于圆外的点有F(x,y)>0,对于圆内的点F(x,y)<0 . 与中点画线法一样,构造判别式: d=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2 若d<0,则应取P1为下一像素,而且再下一像素的判别式为: d=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3 若d≥0,则应取P2为下一像素,而且下一像

计算机图形学(三种画线算法)

第二章:光栅图形学算法 1.光栅显示器:光栅扫描式图形显示器简称光栅显示器,是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度 2.由来:随着光栅显示器的出现,为了在计算机上处理.显示图形,需要发展一套与之相适应的算法. 3.研究内容: 1>直线段的扫描转换算法 2>多边形的扫描转换与区域填充算法 3>裁剪算法 4>反走样算法 5>消隐算法 一.直线段的扫描转换算法 1.为了显示一条直线,就在光栅显示器上用离散的像素点逼近直线,所以我们就要知道这些像素点的坐标

【转载】计算机图形学框架

原文: 计算机图形学框架 应用 基本图形生成算法 图元光栅化标准 直线要直 图元终点要准 图元生成的亮度.色泽粗细要均匀 快速计算 直线光栅化算法 逐点比较法 数值微分法 中点Bresenham算法 圆的光栅化算法 简单方程产生圆弧 Bresenham算法产生圆弧 多边形填充 扫描线填充 宽图元 复制像素画宽图元 移动画笔画宽图元 3D数学基础 坐标系 向量 矩阵 空间集合运算 集合形体的表达 几何体之间的关系 图形变换 二维及三维图形几何变换 二维图形几何变换 平移变换 比例变换 旋转变换 错

[计算机图形学] 基于C#窗口的Bresenham直线扫描算法、种子填充法、扫描线填充法模拟软件设计(一)

一.首先说明: 这是啥? —— 这是利用C#FORM写的一个用来演示计算机图形学中 ①Bresenham直线扫描算法(即:连点成线):②种子填充法(即:填充多边形):③扫描线填充法 有啥用? ——  无论是连点成线还是区域填充在高级编程中基本上都提供很高效的库函数来调用.这里拿出这些算法一方面有利于大家理解那些封装的函数底层是实现:另一方面是方便嵌入式TFT屏幕底层驱动开发时借鉴的. 是啥样? ——  如下面的操作,不言而喻. 二.进入正题: 2-1.直线的扫描转换 图形的扫描转换实质就是在光栅

计算机图形学名词解释

转自 http://blog.csdn.net/lwfcgz/article/details/39254743 3D三维(three dimension).客观世界中静止的物体都是三维的,在计算机图形学中常在一定的坐标系中用(x,y,z)坐标系列表示物体. 3D modeling3D建模.用三维坐标来描述物体的形状.在各种计算机图形应用领域中有不同的三维建模方法,用不同的算法来描述这些领域中的物体和对象. 3D transformation3D变换.在三维空间中把物体的三维坐标从一个位置变换至另

计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法

OpenGL曲线函数 生成圆和椭圆等基本曲线的函数并未作为图元功能包含在OpenGL核心库中.但该库包含了显示Bezier样条的功能,该曲线是由一组离散点定义的多项式.OpenGL实用库(GLU)中包含有球面和柱面等三维曲面函数以及生成B样条的函数,它是包含简化Bezier曲线的样条曲线的总集.我们可以使用有理B样条显示圆.椭圆和其他二维曲线.此外,OpenGL实用工具包(GLUT)中还有可以用来显示某些三维曲面(如球面.锥面和其他形体)的函数.然而,所有这些函数比本章中介绍的基本图元应用得更多

计算机图形学 绘制任意斜率的直线(1)

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/40025917 本文演示,通过自己编写绘制直线函数(像素点填充),绘制任意斜率的直线. 1)创建CP2类 头文件:p2.h // P2.h: interface for the CP2 class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX