- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案 精彩文档 实验六 二维裁剪 实验目的: 通过实验掌握下列知识: 1. 掌握OpenGL下裁剪窗口与视区的设置; 2. Cohen-Sutherland 算法的原理与实现; 3. 梁友栋-Barskey 算法的原理与实现; 内容及步骤: 一、基础知识介绍 1、裁剪窗口与视区 裁剪窗口(clipping window):在世界坐标系中规定的要显示的二维场景的某个区域,即定义要显示哪里,该裁剪窗口之外的东西不被显示。有时被称作世界窗口、观察窗口或窗口。 视区(viewport): 在显示器上的何处显示裁剪窗口指定的区域,即定义在哪里显示。 窗口和视区的操作特点: (1)改变视区的位置,可以在输出设备显示区的不同位置显示图形; (2)改变视区的尺寸,可以改变窗口内图形的尺寸和位置; (3)固定视区,改变裁剪窗口的大小,可以获得图形缩放的效果; (4)固定视区,移动裁剪窗口位置,可以获得扫视场景的效果; (5)当裁剪窗口与视区的宽、高的比例不同时,显示的物体会发生形变,所以往往使裁剪窗口与视区的宽、高的比例相同。 2、OpenGL中的裁剪窗口函数与视区函数 世界坐标系中的三维物体 世界坐标系中的三维物体 三维几何变换 投影 三维裁剪 视区变换 屏幕坐标系中显示 三维图形的显示流程 在OpenGL中,二维裁剪窗口使用下列OpenGL函数: gluOrtho2D(xWinMin, xWinMax, yWinMin, yWinMax); 四个参数都是用双精度浮点数给出,指定世界坐标系上x-y平面上能够显示的范围,x方向上,能够显示出来的范围是xWinMin~ xWinMax,y方向上,能够显示出来的范围是yWinMin~ yWinMax。在这个矩形方位之外定义的图形,不能被显示出来。 注意,当没有为应用程序指定裁剪窗口时,就使用默认的坐标:xWinMin=-1.0, xWinMax=1.0, yWinMin=-1.0, yWinMax=1.0。这样,默认的裁剪窗口是以坐标系原点为中心,边长为2的正方形区域。 那么,这个范围内的图形,显示在显示器上生成窗口的哪个位置呢?这需要通过视区函数(ViewPort,有时也称视口)来指定: glViewport(xViewportMin, xViewportMax, viewportWidth, viewportHeight); 这里的所有参数用对应于显示窗口的整数屏幕坐标给出,参数xViewportMin和yViewportMin指定视区左下角的位置,视区的宽度和高度用参数viewportWidth和viewportHeight指定。也就是说,用gluOrtho2D指定显示范围的图形在用glViewport指定的窗口位置显示出来。 注意,当没有在应用程序中用glViewport指定视区时,则默认的视区大小及位置与整个OpenGL显示窗口一样。 显然,当gluOrtho2D和glViewport指定的矩形区域的宽高比不一样时,图形会发生形变。 那么,已经在世界坐标系中定义的物体,计算机的显示系统怎样确定哪些部分显示,哪些部分不显示呢?这是通过相关的裁减算法计算出来的。 二、裁减算法 1、点的裁剪 判断点 P=(x, y)是否在裁剪区域( xWinMin, xWinMax, yWinMin, yWinMax )内,只要判断是否满足条件 如果满足,就表明在裁剪区域内,否则,就在裁剪区域之外。 2、线段的裁减 线段的裁减要判断线段与裁剪矩形边界的各种关系。经典的线段裁剪算法有Cohen-Sutherland 算法和梁友栋-Barskey 算法。 Cohen-Sutherland 算法的代码如下: class wcPt2D { public: GLfloat x, y; }; inline GLint round (const GLfloat a) { return GLint (a + 0.5); } /* Define a four-bit code for each of the outside regions of a * rectangular clipping window. */ const GLint winLeftBitCode = 0x1; const GLint winRightBitCode = 0x2; const GLint winBottomBitCode = 0x4; const GLint winTopBitCode = 0x8; /* A bit-mask region code is also assigned to each endpoint of an input * line segment, accordi
您可能关注的文档
最近下载
- 气象学重点 农林气象学思考题.docx VIP
- T_CPQS XF003-2023 灭火器产品维修、更换及售后服务.docx VIP
- DB5325T 123-2025 设施蓝莓采收与贮藏技术规程.docx VIP
- 1共析转变.ppt VIP
- 操作系统原理(全套1236页PPT课件).pptx VIP
- 计算机操作员中级实操试卷资料.docx VIP
- DB5325T123-2025 设施蓝莓采收与贮藏技术规程.pdf VIP
- 农林气象学模拟题.doc VIP
- TCPQS+XF006-2023 消防水带产品维护、更换及售后服务.docx VIP
- 广东省2024年普通专升本《管理学》真题-广东专插本最前线.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)