2D基元绘图
来源:互联网 发布:博客打水软件 编辑:程序博客网 时间:2024/04/30 15:02
基元也称为图元,是绘图时的最小基本单位
直线和圆的光栅化
光栅化(rasterization):
光栅化也称为扫描转换(scan conversion);
是从向量图到像素矩阵的转换。
确定哪些像素在由顶点表示的图元内部
生成片段集合
片段有位置值(像素位置)和由顶点属性值插值得到的颜色、纹理坐标和深度等其他属性
直线的光栅化
介绍以下这两种算法:基础算法,中点法
1.基础算法
平凡算法(无增量版本 )
y = m.x+p
x: 1->n
显示(x,round(m.x+p))
DDA(增量版本)
y = m.x + p
x[i+1] = x[i] + dx
y[i+1] = y[i] + m.dx
对于这两种基础算法来说,如果斜率m>1的话,就要交换x和y的角色
2.中点法
又称作Bresenham算法,无需近似.适用于斜率在0-1,对于大于1的,交换x和y的角色,对于斜率为负的,采用对称法描图
决策函数:F(Mi)=ax - by + c
已知上一个点的坐标,把中点代入
F>0,采用NE
F<0,采用SE
F=0,默认采用SE
圆的光栅化
中点法
原理:我们只描述x在[0,R/sqrt(2)],其余的点由对称性获得
算法
隐式方程:F(x,y)=x² + y² -R²
决策函数:F(M)=(x[p]+1,y[p]-0,5)
如果F<0,选E,否则,选SE
F(Mi+1)=F(Mi)+2x[p]+1(选择E)
F(Mi+1)=F(Mi)+2x[p]-2y[p]+2
椭圆的光栅化
中点法
描绘区间:[0,a]
其他点通过对称性获得
隐式方程:F()=b²x²+a²y²-a²b²=0
当切线斜率大于-1的时候选择E或者SE
当切线斜率小于-1的时候选择S或者SE
- 2D基元绘图
- Quartz 2D 绘图d
- 2D绘图
- 2D绘图 钟表
- 2D绘图 (Qt)
- 2D绘图 (Qt)
- opengl 2D绘图
- QT--2D绘图
- 2D绘图
- Android 2D绘图
- Qt 2D绘图
- Quartz 2D绘图
- Quartz 2D 绘图
- 2D绘图
- 2D绘图
- Quartz 2d绘图
- Android 2D 绘图
- Qt 2D绘图
- Android-Volley
- View的setWillNotDraw()
- 我自己研究开源项目源代码的两个重要习惯
- 湘潭大学oj1216
- 毕业设计-基于深度神经网络的语音关键词检出系统-使用python脚本作词频统计-TIMIT
- 2D基元绘图
- 个人制作网站全过程分享
- step1 writeup —— 输入作为函数参数
- 第三章第32题约瑟夫环问题
- 解析页面font相关的css
- vi编辑器的使用1
- 五子棋过程中用到的知识【flash as3 】
- VHDL上机练习:半加器(Active-HDL)
- vi编辑器的使用2