图形学
chenge0925
这个作者很懒,什么都没留下…
展开
-
直线的扫描转换算法
这是第一篇博客,顺便深入学习一下markdown语法。 之后的图形学文章都使用C++实现。目录目录数值微分法算法理论算法实现中点画线法算法理论算法实现Bresenham画线算法算法理论算法实现数值微分法数值微分法通过计算直线的斜率,计算每个x对应的y坐标,并取像素x,round(y)。本方法直观可行,但执行效率低。由于每步都原创 2018-01-31 19:37:58 · 1212 阅读 · 0 评论 -
圆与椭圆的直线扫描算法
目录目录中点画圆法算法理论算法实现Bresenham画圆算法算法理论算法实现中点画椭圆算法算法理论算法实现中点画圆法算法理论首先只考虑圆心在原点的第二8分圆。要生成完整的圆可以通过平移、反射变换得到。 当P点坐标(xp,yp)'>(xp,yp)(xp,yp)(x_p,y_p)已确定时,下一像素点只能取(xp+1,yp)'>(xp+原创 2018-02-02 21:26:25 · 645 阅读 · 0 评论 -
区域填充算法
由于做调研报告和过年,耽搁了一段时间,赶紧补上。惭愧惭愧。多边形域的填充算法理论对于一般多边形,对一条扫描线,可以分为四个步骤: 1. 求交。求扫描线与多边形各边的交点。 2. 排序。交点按递增的顺序排序。 3. 交点配对。将各个交点配对,每对交点代表一个相交区间。 4. 区间填色。 对于扫描线与顶点相交的情况,当共享交点的两条边在扫描线的两边时,交点只算一个。当共享...原创 2018-03-02 14:44:23 · 8931 阅读 · 1 评论 -
反走样算法
加权区域取样算法理论提高分辨率、简单区域取样都有其局限性,在此讨论加权区域取样。 加权区域取样以像素所在位置对圆锥滤波器进行积分,据此判断距直线某像素点的灰度值。总体根据中点直线算法,并对直线上下两点计算其灰度值实现。具体有其递推的算法,不再详述。算法实现#include<iostream>#include<cmath>#include&l...原创 2018-03-10 21:43:17 · 2090 阅读 · 0 评论 -
裁剪算法
Cohen-SutherLand算法算法理论算法总体思想是,对于每条线段P1P2P1P2P_1P_2,(1)若P1P2P1P2P_1P_2全在窗口内,取之;(2)若P1P2P1P2P_1P_2明显在窗口外,弃之;(3)若无法满足上述两条件,则把线段分为两段,窗口外的可弃之,剩下的重复处理。 为方便处理,将图形区按下表分类: 1001 1000...原创 2018-03-05 14:00:36 · 3333 阅读 · 0 评论 -
Bezier曲线
Bezier曲线的定义Bezier曲线在起点与终点位置与多边形重合。当给定空间n+1个点的位置矢量,则n次Bezier曲线上各点坐标的插值公式为: C(t)=∑i=0nPiBi,n(t)C(t)=∑i=0nPiBi,n(t)C(t)= \sum_{i=0}^nP_iB_{i,n}(t)其中,n此Bernstein基函数为: Bi,n(t)=n!i!(n−i)!ti(1−t)n−iBi,n(...原创 2018-03-25 19:25:57 · 1435 阅读 · 0 评论