术语退化多边形(degenerate polygon)常用来描述共线或重叠坐标位置的顶点集。共线顶点生成一线段。重叠顶点位置可以生成有多余线段、重叠边或长度为0的边的多边形。有时术语退化多边形也用于少于三个坐标位置的顶点队列。为了软件的鲁棒性,图形软件包可以拒绝退化或非平面的顶点集。但这要求额外的识别该问题的处理,因此图形系统常把这种考虑留给程序员。
凹多边形也会有相关的一些问题。对凹多边形的填充算法和其他子程序的实现比较复杂,因此在处理前常将凹多边形分割成一组凸多边形以便提高效率。和其他的多...
分类:
其他好文 时间:
2016-05-13 03:11:33
阅读次数:
238
在原来的OpenGL渲染的pipeline并没有提供较多的交互接口,当调用Draw函数之后很难再绘制过程对已经装配的图元进行修改。然而,在绘制过程中存在这样的需求,尤其是需要根据之前装配好的图元来更新随后的操作。举个简单的例子,当一个场景中存在两个相对运动的物体时,后一个物体需要根据前一个物体的运动来决定自己的运动轨迹,因此需要有一种feed back来提升交互能力。Transform feed ...
分类:
其他好文 时间:
2016-05-12 12:27:34
阅读次数:
199
例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4)); 来指定要利用这些数据生成一个怎么样的形状。 该行代码中,使用DrawArrays类向Geometry类送入了新几何体的信息,即,该几何体是一个QUA ...
分类:
其他好文 时间:
2016-05-09 12:45:34
阅读次数:
255
许多曲线函数在对象建模、动画轨迹的描述、数据和函数的图形化以及其他图形应用中是十分有用的。常见的曲线包括圆锥曲线、三角和指数函数、概率分布、通用多项式和样条函数。这些曲线的显示可采用类似于前面讨论的圆和椭圆函数来生成。沿曲线轨迹的位置可直接从表达式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
这里的方法类似于显示光栅圆。给定参数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
几何画板在绘制完图片后保存的时候默认的是gsp文件,怎样才能保存为图片格式的文件呢?下面我们将介绍将几何画板文件保存为图片格式的方法。 方法一、直接保存文件为“emf”格式 绘制完成图片后,在“文件”菜单下选择“另存为”,在弹出的另存为对话框选择增强型图元文件“emf”格式保存。 几何画板中选择另存 ...
分类:
其他好文 时间:
2016-04-28 10:36:00
阅读次数:
355
今天看计算机图形学的第三章“输出图元”,看了一些不同曲线的生成算法,产生了许多困惑: 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