计算机图形学实验六计算机图形学实验六.docVIP

计算机图形学实验六计算机图形学实验六.doc

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

集 美 大 学 计 算 机 工 程 学 院 实 验 报 告 课程名称 计算机图形学教程 实验名称 实验六、二维图形的裁剪 实验类型 设计型 姓名 李慧 学号 2011810063 日期 2013/12/11 地点 陆大206 成绩 教师 庄建东 评语: 一.实验目的与要求 实习目的   1、培养学生动手编程解决实际问题的能力。   2、训练学生分析问题和调试程序的能力。   3、锻炼学生撰写科技实验论文的能力。   实习要求   1、问题分析   充分地分析和理解问题本身,弄清要求做什么,用什么算法。 在使用计算机处理图形信息时,往往计算机内部存储的图形比较大,而屏幕显示只是图的一部分。为了看到图形的局部细节,常利用缩放技术,把图形的局部区域放大显示。在放大显示图形的一部分区域时,必须确定图形中哪些部分落在显示区域之内,哪些部分落在显示区域之外,以便只显示落在显示区域内的那部分图形,这个选择过程称为裁剪。   在进行裁剪时,画面中对应于屏幕显示的那部分区域称为窗口。一般把窗口定义为矩形,也可以是其它多边形。裁剪算法包括:对线段的裁剪及对多边形的裁剪。 课时:2   2、程序设计   (1)根据所采用的算法,设计数据结构,画出流程图并编程。   (2)最后准备调试程序的数据及测试方案。   3、上机调试   (1)对程序进行编译,纠正程序中可能出现的语法错误。   (2)调试前,先运行一遍程序看看究竟将会发生什么。   (3)如果情况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出中间变量值等手段。   4、整理实习报告 二.实验环境 ? 1.PC,CPU:P4 2.0GHz以上,内存:512M,硬盘:40GB以上; 2.操作系统:Microsoft Windows 2000 /2003/XP; 3.软件:VC或JAVA等。 三.实验内容与步骤 ??实现二维图形的裁剪。 基本要求 用Sutherland-Hodgeman或Weiler – Atherton多边形裁剪算法实现对 矩形窗口某一边界的裁剪。 要求: 有裁剪的动态演示过程 实验内容及完成情况 #include graphics.h #include stdio.h #include math.h #include stdlib.h #define null 0 typedef struct node { int dx,dy; struct node *next; }node; node *create() { node *h,*q,*r; int p[8][2]={100,120,160,50,180,100,200,80,240,160,210,220,170,160,140,190}; int i; for(i=0;i7;i++) line(p[i][0],p[i][1],p[i+1][0],p[i+1][1]); line(p[0][0],p[0][1],p[7][0],p[7][1]); rectangle(120,200,230,70); h=null; r=h; for(i=0;i8;i++) { q=(node *)malloc(sizeof(node)); q-dx=p[i][0]; q-dy=p[i][1]; if(h==null) h=q; else r-next=q; r=q; } r-next=null; return h; } node *builx(node *h,int x) { int s[2],j[2]; node *hh,*p,*r,*q; int max,min; p=h; r=h; hh=null; s[0]=p-dx; s[1]=p-dy; p=p-next; while(p!=null) { j[0]=x; if(p-dx!=s[0]) j[1]=s[1]+((p-dy-s[1])*(x-s[0]))/(p-dx-s[0]); else j[1]=640; max=s[0]; min=p-dx; if(maxmin) { max=p-dx; min=s[0]; } if((j[0]=min)(j[0]=max)) { q=(node *)malloc(sizeof(node)); q-dx=j[0]; q-dy=j[1]; if(hh==null) hh=q;

文档评论(0)

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

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

1亿VIP精品文档

相关文档