一种复杂边界平面图形的绘制方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 一种复杂边界平面图形的绘制方法   摘要:针对计算机辅助几何造型中经常用到的各种复杂边界的平面图形,基于OpenGL的NURBS曲面绘制及裁剪功能,提出了一种绘制复杂边界平面图形的方法,避免了对平面图形进行网格化处理。以一平面图形为例,在Dev-C++平台上试验了这种绘制方法。   关键词:OpenGL;NURBS;计算机辅助几何造型   中图分类号:TP317.4文献标识码:A文章编号2013)003016302   0引言   在计算机辅助几何造型领域,常常会用到各种具有复杂边界的平面图形,其边界不仅有直线,还可能有圆弧等各种曲线。目前OpenGL提供了绘制三角面以及凸多边形的函数,没有直接提供绘制凹多边形及有曲线边界的平面图形的方法。但是其拥有强大的NURBS曲面绘制函数,可以绘制任意的NURBS曲面,并且可以裁剪绘制NURBS曲面。由于平面也可以看作是一种最简单的曲面,所以可以把OpenGL的NURBS曲面绘制功能借鉴到对平面图形的绘制当中,实现对复杂边界平面图形的绘制。   文中图形是在笛卡尔坐标系中的xoy平面上进行讨论的,对于不在这个平面上的图形,也可以在其所在的平面上建立局部坐标系,再按照如下提到的方法进行计算。   1NURBS及其相关概念   NURBS是NonUniformRationalBSplines的缩写,表示非均匀有理B样条的意思。其核心思想在于用多个控制点来表示一条曲线或曲面。   1.1NURBS控制点   在计算机辅助几何造型中,常常用到各种各样的曲线,可以用简单解析式表示的曲线远远不能满足要求。为了更方便地用来表示曲线、曲面形状,可以用一系列点来控制和调节曲线、曲面的形状,这些点被称为控制点。   在NURBS的理论中,控制点包含两部分信息,一部分是点的坐标值,另一部分是点的权重。点的坐标值表示点在空间中的位置,点的权重值表示点对曲线或曲面的影响大小。三维空间上的控制点可以用四维向量表示,分别代表三个坐标和一个权重值。也可以用三维向量表示,这时权重默认为1.0。二维空间上的控制点可以用三维向量表示,代表两个坐标值和一个权重,也可以用二维向量表示,此时权重默认为1.0。   1.2NURBS曲线、曲面   NURBS曲线用空间中的一组控制点向量表示,每一个点都可以对曲线的形状有一定的影响。NURBS曲面用空间中的一组控制点矩阵表示。根据NURBS的解析式,如果确定了控制点,也就可以唯一确定一条曲线或者一条曲面。也正是由于NURBS的这种精确表示的特性,在计算机辅助几何造型中得到了广泛的应用。   2几种图形的NURBS表示方法   2.1曲线   本文仅对工程中最常见的线段和圆弧进行讨论,其它曲线可以参照NURBS公式计算其表示方法。   2.1.1直线段   用2个控制点表示,2个控制点的坐标值为线段的端点坐标值,权重为1.0。   2.1.2圆弧   需要按照圆弧的圆心角θ的大小讨论,分以下情况:   对于0°   对于圆心角超过90°的圆弧(包括圆环),可以切成多段圆弧,每段圆弧都不超过90°,再把每段圆弧用上面的方法表示,即用多段圆弧来表示。   2.2平面矩形   平面矩形用4个控制点表示,4个控制点的坐标为矩形4个角点的坐标值。为方便起见,可以用三维向量表示,权重默认为1.0。   3OpenGL中NURBS的特殊说明   3.1控制点   在OpenGL中表示带权重的控制点有特殊的表示方法,对于控制点P,若其坐标为(x,y,z),权重为weight,则在OpenGL中表示该控制点的四维向量计算公式为:   =(xweight,yweight,zweight,weight)   (1)3.2曲面裁剪函数   OpenGL中供曲面裁剪调用的函数是gluBeginTrim、gluEndTrim与gluNurbssCurve、gluPwlCurve。在进行曲面裁剪开始时调用gluBeginTrim函数,在结束时调用gluEndTrim函数。用gluNurbsCurve函数和gluPwlCurve函数绘制曲面边界,其中gluNurbsCurve函数主要用于绘制曲线边界,gluPwlCurve函数用于绘制直线边界。为了统一表示,都采用了gluNurbsCurve函数。   4图形绘制数据计算   4.1背景矩形绘制数据计算   对于任意一个平面有界图形,都可以在其所在的平面上找到若干个矩形,使该图形的所有部分都在矩形之中。在这些矩形中,两边与绝对坐标系的x轴与y轴平行且面积最小的矩形称为背景矩形。该矩阵与x轴方向平行的边的长度称为背景矩形的宽,与y轴平行的长度称为背景矩形的高。该矩形的四条边分别通过平面有界图形在x、y轴方向上的最大最小值

文档评论(0)

gmomo-lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档