




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术学院天津理工大学计算机科学与技术学院实验报告2015 至 2016 学年 第 二 学期课程名称计算机图形学学号学生姓名年级专业课程号实验地点实验时间主讲教师辅导教师实验( 一 )实验名称绘制基本图形软件环境Visual Studio 2010OSG-3.1.0Windows 7硬件环境2G内存显卡GT610CPU奔腾双核硬盘320G实验目的1. 理解图形元素显示的基本原理,掌握扫描转换直线段的常用算法原理,扫描转换圆弧的常用算法原理。2. 熟悉OpenSceneGraph常用几个类(Group,Geode,Geometry,Node,Viewer,osg:Vec3Array)3. 熟悉OpenSceneGraph构建场景的基本框架4. 掌握绘制不同大小和颜色的点的方法5. 掌握绘制不同线型和颜色的直线的方法(直线,折线,环线)6. 掌握绘制彩色多边形边框的方法(各种设备)7. 熟悉OpenSceneGraph的编程环境实验内容(应包括实验题目、实验要求、实验任务等)实验题目:1. 绘制基本形状(osg:PrimitiveSet:POINTS,osg:PrimitiveSet:LINES,osg:PrimitiveSet:LINE_STRIP,osg:PrimitiveSet:LINE_LOOP,osg:PrimitiveSet:POLYGON,osg:PrimitiveSet:QUADS,osg:PrimitiveSet:QUAD_STRIP,osg:PrimitiveSet:TRIANGLES,osg:PrimitiveSet:TRIANGLE_STRIP,osg:PrimitiveSet:TRIANGLE_FAN)。2. 实现各自名字的绘制。3. 颜色的设置要合适。实验要求:1. 设计结构合理、扩展灵活。2. 每个设备类独立封装。3. 提交电子版实验报告及工程代码,试验报告模板可参考计算机学院统一模板4. 提交的工程代码必须删除其中的Debug或Release文件夹实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)GeometryGeode节点模型:NodeGroup点线三角形四边形文字实验步骤:1. 在纸上绘制草图,建立三维坐标系,并在坐标系中画出个图形,并设定各点坐标,使其坐标符合逻辑,以供绘制图形坐标的选择;2. 创建Group节点,Geode节点,Geomotry节点,3. 创建顶点坐标数组,颜色数组,法线数组;4. 实现基本绘制。流程图:开始设置顶点坐标,并设置其对应顶点坐标设置顶点坐标与颜色对应关系,为一一对应模式使用addDrawable函数结束viewer.run()用viewer设置SetSceneData()结果展示:附录(可包括源程序清单或其它说明)源代码:#include #include#include#include#include#include #include#include#include#include#include #include void createContent1(osgText:Text& textObject,const char* string);osg:Geode* draw()osg:ref_ptr node = new osg:Node;osg:ref_ptr group = new osg:Group;osg:ref_ptr geode = new osg:Geode;osg:ref_ptr geometry = new osg:Geometry;osg:ref_ptr point = new osg:Vec3Array;osg:ref_ptr color = new osg:Vec3Array;osg:ref_ptr normal =new osg:Vec3Array;point-push_back(osg:Vec3(0,0,0);point-push_back(osg:Vec3(0,3,0);color-push_back(osg:Vec3(0,0,0);color-push_back(osg:Vec3(0,0,0);point-push_back(osg:Vec3(-20,0,20);point-push_back(osg:Vec3(-15,0,20);point-push_back(osg:Vec3(-15,0,18);point-push_back(osg:Vec3(-20,0,18);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-14,0,20);point-push_back(osg:Vec3(-10,0,20);point-push_back(osg:Vec3(-10,0,18);point-push_back(osg:Vec3(-14,0,18);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-9,0,20);point-push_back(osg:Vec3(-6,0,20);point-push_back(osg:Vec3(-6,0,18);point-push_back(osg:Vec3(-9,0,18);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-5,0,20);point-push_back(osg:Vec3(-3,0,21);point-push_back(osg:Vec3(-1,0,20);point-push_back(osg:Vec3(-1,0,19);point-push_back(osg:Vec3(-3,0,18);point-push_back(osg:Vec3(-5,0,19);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);color-push_back(osg:Vec3(0,0.7,0.5);color-push_back(osg:Vec3(1,1,1);point-push_back(osg:Vec3(0,0,20);point-push_back(osg:Vec3(1,0,20);point-push_back(osg:Vec3(1,0,18);point-push_back(osg:Vec3(0,0,18);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-20,0,15);point-push_back(osg:Vec3(-20,0,11);point-push_back(osg:Vec3(-15,0,11);point-push_back(osg:Vec3(-15,0,15);point-push_back(osg:Vec3(-12,0,9);point-push_back(osg:Vec3(-12,0,13);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);color-push_back(osg:Vec3(0,0.7,0.5);color-push_back(osg:Vec3(1,1,1);point-push_back(osg:Vec3(-11,0,15);point-push_back(osg:Vec3(-11,0,11);point-push_back(osg:Vec3(-9,0,15);point-push_back(osg:Vec3(-9,0,11);point-push_back(osg:Vec3(-7,0,13);point-push_back(osg:Vec3(-7,0,9);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);color-push_back(osg:Vec3(0,0.7,0.5);color-push_back(osg:Vec3(1,1,1);point-push_back(osg:Vec3(-5,0,10);point-push_back(osg:Vec3(-1,0,15);point-push_back(osg:Vec3(1,0,10);point-push_back(osg:Vec3(-1,0,5);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-20,0,-1);point-push_back(osg:Vec3(-16,0,5);point-push_back(osg:Vec3(-14,0,-1);point-push_back(osg:Vec3(-16,0,-6);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);point-push_back(osg:Vec3(-12,0,-1);point-push_back(osg:Vec3(-8,0,5);point-push_back(osg:Vec3(-6,0,-1);point-push_back(osg:Vec3(-8,0,-6);color-push_back(osg:Vec3(1,0,0);color-push_back(osg:Vec3(0,1,0);color-push_back(osg:Vec3(0,1,1);color-push_back(osg:Vec3(1,1,0);normal-push_back(osg:Vec3(0,-1,0);geometry-setVertexArray(point.get();geometry-setColorArray(color.get();geometry-setNormalArray(normal.get();geometry-setNormalBinding(osg:Geometry:BIND_OVERALL);geometry-setColorBinding(osg:Geometry:BIND_PER_VERTEX);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:POINTS,0,2);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:LINES,2,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:LINE_STRIP,6,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:LINE_STRIP,10,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:POLYGON,14,6);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:LINE_LOOP,20,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:QUADS,24,6);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:QUAD_STRIP,30,6);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:TRIANGLES,36,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:TRIANGLE_STRIP,40,4);geometry-addPrimitiveSet(new osg:DrawArrays(osg:DrawArrays:TRIANGLE_FAN,44,4);setlocale(LC_ALL,.936);/配置地域化信息const char* titleString=zhengzhanwei;osg:ref_ptr text0 = new osgText:Text; osg:ref_ptr font = new osgText:Font();font = osgText:readFontFile(C:WINDOWSFontssimhei.ttf);text0-setFont(font.get();/text0-setFont(C:WINDOWSFontssimhei.ttf);text0-setFontResolution( 128, 128 ); text0-setColor(osg:V
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信阳航空考试题目及答案
- 三甲医院住院医师规范化培训全科师资培训考试题及答案
- 2025年航天质量知识试题及答案
- 维修电工考级考证试题题库及答案
- 2025年风机检修培训试题及答案
- 安全用电考试题及答案
- smt基础知识考试试题及答案
- 跨国企业劳动合同制定与海外员工权益保障合同
- 高新技术研发项目资金拨付合同
- 2025公务员省考面试题及答案
- 2024年保育员考试题库加解析答案
- 2024上海高考英语句子翻译模拟试题及答案解析
- JTS 206-2-2023 水运工程桩基施工规范
- 2024建筑消防设施检测报告书模板
- 音乐培训学校可行性方案
- GB 42298-2022手部防护通用技术规范
- 2024年中国人寿招聘笔试参考题库含答案解析
- 山体滑坡安全隐患评估报告
- 规范贷款中介合作协议书范本
- 宠物行为分析与心理健康研究
- 大学交际英语口语-unit-1-getting-to-know-you
评论
0/150
提交评论