计算机图形学之光栅图形学——多边形的扫描转换之 X-扫描算法及改进

本文是对 赵明老师 《计算机图形学》MOOC课程 部分章节的小总结。

多边形有两种表示方法:顶点表示和点阵表示。

X-扫描线算法:

  

  

  

  算法步骤概括如下:

  

  

  

  

  注意:

  

  

  

  

改进:

  

  

  

  

  为了避免求交运算,引进一套特殊的数据结构:

  

时间: 2024-10-14 10:13:45

计算机图形学之光栅图形学——多边形的扫描转换之 X-扫描算法及改进的相关文章

计算机图形学之光栅图形学——反走样算法简介

本文是对 赵明老师 <计算机图形学>MOOC课程 部分章节的小总结. 走样是数字化不可避免的. 简化:

计算机图形学——多边形的扫描转换

一.多边形扫描转换 在光栅图形中,区域是由[相连的]像素组成的集合,这些像素具有[相同的]属性值或者它们位于某边界线的内部 1.光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示.这种转换成为多边形的扫描转换.2.多边形的扫描转换与区域填充问题是怎样在离散的像素集上表示一个连续的二维图形.3.多边形有两种重要的表示方法: (1)顶点表示:用多边形的定点序列来表示多边形    优点:直观.几何意义强.占内存少.易于进行几何变换    缺点:没有明确指出那些象素在多边形内,故不能直接用于上色(

图形学_多边形扫描转换_边界标志算法

边界标志算法 1. 对多边形的每一条边进行扫描转换,即对多边形边界所经过的象素作一个边界标志. 2.填充 对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该扫描线上的象素. 取一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真.若点在多边形外,则inside为假. Inside 的初始值为假,每当当前访问象素为被打上标志的点,就把inside取反.对未打标志的点,inside不变. 1 #include "easyx.h" 2 #include &qu

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

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

图形学复习1——图形学图形系统概述与对象表示

图形学复习 CH1 图形学概述 1.1 图形学 计算机图形学是研究图形的输入.模型的构造和表示.图形数据库管理.图形的操作以及以图形为媒介的人机交互的方法和应用的一门综合性学科 其最主要的任务是:研究如何用数据模型生成数字图像,具体来说有以下几个方面: 图形建模 几何处理 光栅化 片元处理 等等 计算机图形一般有两种表示方法: 图像:枚举图形中所有的点构成的2维点阵 图形:用图形的形状参数(参数方程.端点坐标等)和属性参数(颜色.线形等)来表示的参数模型 图形学中主要用后者表示计算机图形 CH2

多边形的扫描转换(一)X-扫描线算法

二.多边形的扫描转换 在光栅图形中,区域是由[相连的]像素组成的集合,这些像素具有[相同的]属性值或者它们位于某边界线的内部 1.多边形的扫描转换->光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示.[缺点:无法实现对未知边界的区域填充]2.多边形的扫描转换与区域填充问题->是怎样在离散的像素集上表示一个连续的二维图形.3.多边形有两种重要的表示方法: (1)顶点表示:用多边形的定点序列来表示多边形    优点:直观.几何意义强.占内存少.易于进行几何变换    缺点:没有明确指出那些

多边形扫描算法

一.多边形的扫描转换 一. 1.定义:把多边形的顶点表示转化为点阵表示(就是已知多边形的边界,如何找到多边形内部的点,即把多边形内部填上颜色) 2.表示方法:顶点表示和点阵表示 3.顶点表示:是用多边形的顶点序列来表示多边形. 优点:这种表示直观.几何意义强.占内存少,易于进行几何变换. 缺点:没有明确指出哪些像素在多边形内,故不能直接用于面着色. 4.点阵表示:用位于多边形内的像素集合来刻画多边形 优点:是光栅显示系统显示时所需的表现形式 缺点:丢失了许多几何信息(如边界,顶点等) 5.多边形

计算机图形学——光栅图形学直线算法简介

本文是对 赵明老师 <计算机图形学>MOOC课程 部分章节的小总结. 直线是组成图形的基础,其算法往往被多次调用,其好坏直接影响图形的显示效果和速度.以下是一些画直线的常用算法. 1.DDA算法: 此算法基于增量思想. 对于直线的斜截式:y=kx+b,考虑每次 x 递增 1, 都有 y[i+1] = y[i] + k,这样就将 kx 部分的乘法转换成递推的加法. 由于像素点都是整数坐标,所以每次求得的 y 都要取整操作,采用加 0.5 取整数部分的方法:(int)(y[i]+0.5). 但是,

光栅图形学(一):直线段的扫描转换算法

前言 在数学上,理想的直线是没有宽度的,它是由无数个点构成的集合.对直线进行光栅化时,只能在显示器说给定的有限个像素组成的矩阵中,确定最佳逼近于该直线的一组像素,并且按扫描线顺序. 本节介绍绘制线宽为一个像素的直线的三个常用算法:数值微分,中点画线和Bresenham算法. 数值微分法 已知过端点 P0(x0, y0),P1(x1, y1) 的直线段 L(P0, P1):直线斜率为 k = (y1 - y0) / (x1 - x0). 于是 yi+1 = kxi+1 + b. 于是,x每增加1,