计算机图形学
辣条不爱辣
如切如磋,如琢如磨
展开
-
光栅图形学-中点画线法
在数学上,理想的直线是没有宽度的,它是由无数个点构成的集合。对直线进行光栅化时,只能在显示器所给定的有限个像素组成的矩阵中,确定最佳逼近该直线的一组像素,并且按扫描线排序。中点画线法:通过观察发现,画直线段的过程中,当前像素点为(Xp,Yp),下一个像素点有两种可选择点P1(Xp+1,Yp)或P2(Xp+1,Yp+1)。若M=(Xp+1,Yp+0.5)为P1与P2的中点,Q为理想直线与X=Xp...原创 2018-10-01 15:24:05 · 2045 阅读 · 1 评论 -
光栅图形学-中点画圆法
圆被定义为到中心位置(Xc,Yc)的距离为r的点集,圆心位于原点的圆有4条对称轴x=0,y=0,x=y和x=-y,若已知圆弧上一点(x,y),可以得到其关于4条对称轴的其他7个点,这种性质称为八对称性,因此,只要扫描转换1/8圆弧,就可以用八对称性求出整个圆弧的像素集。中点画圆法:构造函数F(x,y) = x^2 + y^2 - R^2,对于圆上的点,F(X,Y)=0,对于圆外的点,F(X,Y...原创 2018-10-01 16:06:36 · 730 阅读 · 0 评论 -
光栅图形学-区域填充-递归
区域是指已经表示成点阵形式的填充图形,它是像素的几何。区域可采用内点表示和边界表示两种表现形式。边界表示中,区域边界着同一种颜色。区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。边界表示的四连通区域的递归填充算法:若原四连通区域用的是边界表示,boundarycolor表示边界的原色。运行结果:填充前:填充后:源代码:void CDra...原创 2018-10-01 16:25:36 · 529 阅读 · 0 评论 -
光栅图形学-区域填充-扫描线
区域填充的递归算法原理与程序都很简单,但由于多次递归,费时,费内存,效率低。特别是当像素个数变多时,由于计算机是用栈实现的递归,递归层数太大程序会崩溃掉。需要填充的范围比较大:填充速度很慢,几秒中后崩溃了。为了减少递归次数,提高效率,可以采用扫描线算法。算法思想:当给定种子点(x,y)时,首先填充种子点所在扫描线上位于给定区域的一个区段,然后确定与这一区段相连通的上下两天扫...原创 2018-10-01 16:44:23 · 496 阅读 · 0 评论 -
光栅图形学-裁剪-Cohen_Sutherland
使用计算机处理图形信息时,计算机内部存储的图形往往比较大,而屏幕显示的只是图的一部分,因此需要确定图形中哪些图形显示在显示区之内,哪些落在显示区之外,这样便于只显示落在显示区内的那部分图形,以提高显示效率。直线段裁剪算法比较简单,但比较重要,是复杂图元裁剪的基础。裁剪前(矩形为窗口区):裁剪后:Cohen_Sutherland裁剪算法:对于每条线段P1,P2,分为三种情况处...原创 2018-10-01 22:03:01 · 339 阅读 · 0 评论