计算机图形学试验课件.PPTVIP

  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文档。上传文档
查看更多
计算机图形学试验课件

计算机图形学实验 计算机科学与技术学院 提纲 实验一 上机环境的设置 实验二 基于光栅图形学的直线、圆弧生成 实验三 多边形的扫描转换和区域填充 实验四 变换与裁剪 实验五 投影 实验六 光照明模型模拟 实验一 上机环境的设置 实验目的 实验采用Windows环境下Java编程,通过本次实验使学生基本了解Java编程的用户界面环境,能独立运用该环境,为后续实验打下良好的基础。 理解如何用Java语言为一个坐标为(x,y)的像素设置颜色。为后面章节的算法编程实现和上机实习奠定基础。 实验内容: 实现画起点为(50,50),终点为(150,150)的直线的Java Applet程序; 实现画起点为(50,50),终点为(150,150)的直线的JavaApplication程序; 实验步骤 1)用Java小程序绘图 与绘图有关的Java 小程序的关键方法之一是:init(),它由浏览器或applet浏览器来调用,通知小程序即将被装入系统,即初始化。初始化包括创建小程序所需的对象,设置初始状态,装载图像和字体,设置某些参数。涉及到的绘图函数有paint(Graphics g),update()和repaint() 2)用Java应用程序绘图 在Java应用程序中,可把图形绘制在面板中,然后再将该面板加入到窗口程序中显示图形。面板是继承JPanel类而来,其中与绘图相关的是paintComponent(Graphics)函数。可以通过覆盖面板的paintComponent()函数,将所有的图形操作代码放在这个函数中来实现图形的绘制。此函数相当于Java小程序中的paint(Graphics)函数。窗口是继承JFrame类而来,其中的show()函数使整个窗口可见。 实验结果示例 Java小程序 Java应用程序 实验二 直线、圆弧生成 实验目的: 直线与圆弧作为机器人轮廓的基本元素,在机器人的建模中起到至关重要的作用。通过该实验熟悉如何将象素点亮,如何画一条直线、一段圆弧。另外也通过该实验熟悉书本中光栅图形显示器的特点、充分理解光栅图形的基本元素(直线、圆弧)的生成算法 实验内容:在实验一的基础上,进行直线与圆的绘制,具体为 1、完成直线绘制程序。 2、选择一种绘圆弧程序,在其基础上,使其能绘整个圆。 实验步骤: 1)绘制直线: DDA直线绘制算法 Bresenham算法 2)绘制圆弧 用正负法画圆弧 在圆弧基础上画整圆 实验结果示例: 实验三 多边形扫描转换和区域填充 实验目的: 机器人的轮廓以矩形为主,则多边形的着色或区域着色问题在绘制场景中的也是非常重要的。通过该实验加深对多边形的扫描转换和区域填充的原理的理解,并掌握java中ImageProducer接口的用法 实验内容: 1、用边界标志算法填充一个凸多边形。 2、用扫描线种子算法填充任意一个区域。 实验步骤: 1)填充一个凸多边形 步骤1:以值为boundary_color 的特殊颜色勾画多边形P的边界。设多边形的顶点为均为整数;置。下面的算法可保证每一条扫描线上着上这种特殊颜色的点的个数是偶数(包括零)。 步骤2:逐条处理扫描线对多边形着色。设in_flag是一布尔变量。对每一条扫描线从左到右进行搜索,如果当前像素位于多边形P内,则in_flag=true,需填上值为polygon_color的颜色;若该像素在多边形P外,则需填上值为background_color的颜色。 2)区域填充 (1)将堆栈置空,并将给定的种子点(x, y)压入堆栈。 (2)若堆栈为空,算法结束;否则取栈顶元素(x, y)作为种子点。 (3)从种子点(x, y)出发,沿纵坐标为y的当前扫描线向左右两个方向用新的颜色逐个像素地填充,直到边界。设区间两边界的横坐标分别为和。 (4)以区间为搜索范围,检查与当前扫描线相邻的上下两条扫描线上的像素,若存在非边界、未填充的像素,则把相应小区间中最右边的点作为种子点压入堆栈,转入(2)。 实验结果示例 实验四 变换与裁剪 实验目的: 通过该实验加深几何变换以及经典裁剪算法的理解,并能熟练掌握这些算法。 实验内容: 1、调用DDA算法,然后实现直线的平移,放缩,旋转。 2、选择Sutherland-Cohen或cyrus-Beck算法或梁友栋算法进行给定直线的裁剪。 实验步骤: 1)Cyrus-beck 算法 2)Sutherland-Cohen 算法 3)梁友栋算法 实验五 投影 实验目的: 最终的机器人是要通过三维到二维的投影而显示在计算机上,所以,通过该实验加深对投影的原理的认识。 实验内容: 以一个立方体为例,投影模式采用透视,对其进行平移,放缩和旋转等模型变换。 实验步骤: 本实验用到java3D

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档