许多曲线函数在对象建模、动画轨迹的描述、数据和函数的图形化以及其他图形应用中是十分有用的。常见的曲线包括圆锥曲线、三角和指数函数、概率分布、通用多项式和样条函数。这些曲线的显示可采用类似于前面讨论的圆和椭圆函数来生成。沿曲线轨迹的位置可直接从表达式y =f (x)或参数方程中得到。此外,还可以使用增量中点算法绘制用隐式函数f(x,y) = 0描述的曲线。
显示一指定的曲线函数的简单方法是使用直线段来逼近曲线。这时,对于要得到沿曲线轨迹的等距线段的端点位置,则可以使用参数表达式。也可以按曲线的斜率选择...
分类:
其他好文 时间:
2016-05-06 15:12:28
阅读次数:
135
在曲线生成中使用的并行方法类似于显示线段中使用的方法。我们既可采用顺序算法按曲线分段分配处理器,也可以提出其他方法将处理器分配给屏幕的不同区域。
显示圆的并行中点方法是,将45°到90°的圆弧分成等长子圆弧,并给每段子圆弧配置一个处理器。然后类似于并行Bresenham画线算法,需要对每个处理器建立初始y值并确定参数pk的值。接着计算整个子圆弧的像素位置,并通过对称性得到其他八分圆中的位置。同样,并行椭圆中点算法将第一象限内的椭圆弧分割成等长弧,并将这些弧分配给各个处理器,在其他象限中的像素位置可由...
分类:
编程语言 时间:
2016-05-06 15:08:23
阅读次数:
191
1 引子 虽然是计算机科班出身,但从小对几何方面的东西就不太感冒,空间想象能力也较差,所以从本科到研究生,基本没接触过《计算机图形学》。为什么说基本没学过呢?因为好奇(尤其是惊叹于三维游戏的逼真,如魔兽世界、极品飞车),在研究生阶段还专门选修计算机图形学,但也只是听了几堂课,知道了有帧缓存、齐次坐标 ...
分类:
其他好文 时间:
2016-05-03 14:20:11
阅读次数:
146
这里的方法类似于显示光栅圆。给定参数rx,ry和(xc,yc),首先确定以原点为中心的标准位置椭圆上的点(x,y),然后将这些点平移到以(xc,yc)为中心的椭圆上。如果希望显示不在标准位置的椭圆,那么就绕中心坐标旋转并对长轴和短轴重新定向。但目前仅考虑显示标准位置的椭圆,第4章将讨论变换对象方向和位置的通用方法。
中点椭圆算法将分成两部分应用于第一象限。图3.25给出了依据rx<ry的椭圆斜率对第一象限进行的划分。并通过在斜率绝对值小于1的区域内在x方向取单位步长,以及在斜率绝对值大于1的区...
分类:
编程语言 时间:
2016-04-29 17:35:42
阅读次数:
214
假设已经在整数屏幕坐标中给定rx,ry和椭圆中心,在中点椭圆算法中我们仅需增量的整数运算来确定决策参数的值。增量r2y 、r2x和2r2yx和2r2xy仅需在程序的开始求值一次。中点椭圆算法可以概括为下列步骤:...
分类:
编程语言 时间:
2016-04-29 16:29:04
阅读次数:
201
上一篇文章,笔者提到了红宝书第8版的代码编译运行问题,想必大家已经知道我看过红宝书了。
然而,笔者竟然看不懂,这是因为笔者并不知道OpenGL的历史。原来有古代OpenGL和现代OpenGL之分,古代OpenGL使用固定功能管线,现在已经被废弃(尽管还能用),而现代使用可编程管线。
由于笔者在网上搜索一通,见到怎么OpenGL的代码又两种风格,到了现在才搞懂。原来OpenGL在...
分类:
其他好文 时间:
2016-04-29 16:03:26
阅读次数:
190
今天看计算机图形学的第三章“输出图元”,看了一些不同曲线的生成算法,产生了许多困惑: 1,我的目的是学一些图形学基础,学这些也确实能学到一些。但实现算法是用openGL和c++语言,这些我也没有基础,感觉买椟还珠,把干货丢掉了,不懂代码读下去能否真正理解图形学内涵? 2,阅读论文的过程中,并没有见到 ...
分类:
其他好文 时间:
2016-04-28 01:53:32
阅读次数:
174
这里的方法类似于显示光栅圆。给定参数rx,ry和(xc,yc),首先确定以原点为中心的标准位置椭圆上的点(x,y),然后将这些点平移到以(xc,yc)为中心的椭圆上。如果希望显示不在标准位置的椭圆,那么就绕中心坐标旋转并对长轴和短轴重新定向。但目前仅考虑显示标准位置的椭圆,第4章将讨论变换对象方向和位置的通用方法。
中点椭圆算法将分成两部分应用于第一象限。图3.25给出了依据rx<ry的椭圆斜率对第一象限进行的划分。并通过在斜率绝对值小于1的区域内在x方向取单位步长,以及在斜率绝对值大于1的区...
分类:
编程语言 时间:
2016-04-26 20:13:28
阅读次数:
183
工作已经八年了,我也不记得自己是什么时候开始,算是走上程序员的这条道道。 大学时学过C++, VB.net, Matlab, 计算机图形学, GPS 。工作中做过管理系统,检测系统,共享工具。然后第二份工作做考勤,做ERP, 做在线会议。 直到现在才开始做面向很多用户的专职前端开发。 有时候很羡慕现 ...
分类:
其他好文 时间:
2016-04-26 00:29:32
阅读次数:
197
如同光栅画线算法,我们在每个步中以单位间隔取样并确定离指定圆最近的像素位置。对于给定半径r和屏幕中心(xc,yc),可以先使用算法计算圆心在坐标原点(0, 0)的圆的像素位置,然后通过将xc加到x且yc加到y。从而把计算出的每个位置(x,y)移动到其适当的屏幕位置。在第一象限中,圆弧段从x = 0到x = y,曲线的斜率从0变化到-1.0。因此,可以在该八分圆上的正x方向取单位步长,并使用决策参数来确定每一步两个可能的y位置中,哪一个更接近于圆的位置。然后,其他七个八分圆中的位置可由对称性得到。...
分类:
编程语言 时间:
2016-04-22 20:48:42
阅读次数:
874