




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学实验报告 黔南民族师范学院信息与计算科学撰写人姓名: _ 撰写时间:2010年5月5日 审查人姓名: 实验过程记录实验名称实验五:实现线段的任意一种裁剪算法时 间 实验学时地 点数学系机房姓 名班级学号组 一、 实验目的:1、 通过实验,进一步理解和掌握直线段的裁剪算法;2、 通直线段的裁剪。二、 实验内容:要求:1 、进一步理解并掌握线段的裁剪算法,并可以实践至少一种线段的裁剪算法;2、注意:本次作业要求学生不能直接使用系统提供的线段裁剪函数,但是可以调用相关的画点、画线函数。三、实验设备及软件软件需求:windows98以上操作系统、Turbo C 2.0 、Turbo C 3.0、Visual C软件、Microsoft Word 97或2000。硬件需求:建议Pentium IV CPU处理器、64MB以上内存、1GB以上硬盘空间的计算机、激光打印机四、实验方法及步骤1实验准备上该实验课前将针对解决实验内容问题的C语言程序编制好,在实验课上,对编制完的程序进行调试、修改和分析,熟悉TurboC2.0的菜单,以及编译,运行程序和调试程序的方法,并编写程序。2.调试程序;程序一:#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8#define XL 150#define XR 350#define YB 150#define YT 300#include #includegraphics.hmain() int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,c:tc); setcolor(12); line(XL,YT,XR,YT); line(XL,YB,XR,YB); line(XL,YT,XL,YB); line(XR,YT,XR,YB); setcolor(9); draw_ett(); getch(); closegraph();encode (x,y,code)int x,y;int *code; int c; c=0; if (xXR) c=c|RIGHT; if (yYT) c=c|TOP; *code=c; return;draw_ett() int x1,x2,y1,y2,x,y; int code1,code2,code;/* printf(XL=150,XR=350,YB=150,YT=300n); scanf(%d,%d,%d,%d,&x1,&y1,&x2,&y2);*/ x1=50; y1=210; x2=300; y2=100; setcolor(2); line(x1,y1,x2,y2); encode(x1,y1,&code1); encode(x2,y2,&code2); while (code1!=0)|(code2!=0) if (code1&code2)!=0) return; code=code1; if (code1=0) code=code2; if (LEFT&code)!=0) x=XL; y=y1+(y2-y1)*(XL-x1)/(x2-x1); else if (RIGHT&code)!=0) x=XR; y=y1+(y2-y1)*(XR-x1)/(x2-x1); else if (BOTTOM&code)!=0) y=YB; x=x1+(x2-x1)*(YB-y1)/(y2-y1); else if (TOP&code)!=0) y=YT; x=x1+(x2-x1)*(YT-y1)/(y2-y1); if (code=code1) x1=x; y1=y; encode(x,y,&code1); else x2=x; y2=y; encode(x,y,&code2); setcolor(14); line(x1,y1,x2,y2); return; 运行结果:程序二:请按书上P109的Cohen-Sutherland算法写出完整的程序,并运行出效果图,可参考以上程序一#define XL 150#define XR 350#define YB 150#define YT 300#define FALSE 0#define TRUE 1#include #includegraphics.htypedef struct int xmin,xmax,ymin,ymax;Rectangle;typedef int boolean;typedef structunsigned all; unsigned left,right,top,bottom;OutCode;void CompOutCode(float x,float y,Rectangle *rect,OutCode *outCode) outCode-all=0; outCode-top=outCode-bottom=0; if(y(float)rect-ymax) outCode-top=1; outCode-all+=1; else if(yymin) outCode-bottom=1; outCode-all+=1; outCode-right=outCode-left=0 ; if(x(float)rect-xmax) outCode-right=1; outCode-all+=1; else if(xxmin) outCode-left=1; outCode-all+=1; void CSLineClip(float x0,float y0,float x1,float y1,Rectangle *rect) boolean accept,done; OutCode outCode0,outCode1; OutCode *outCodeOut; float x,y; accept=FALSE; done=FALSE; CompOutCode(x0,y0,rect,&outCode0); CompOutCode(x1,y1,rect,&outCode1); do if(outCode0.all=0&outCode1.all=0) accept=TRUE; done=TRUE; else if(outCode0.all&outCode1.all!=0) done=TRUE; else if(outCode0.all!=0) outCodeOut=&outCode0; else outCodeOut=&outCode1; if(outCodeOut-left) y=y0+(y1-y0)*(rect-xmin-x0)/(x1-x0); x=(float)rect-xmin; else if(outCodeOut-top) x=x0+(x1-x0)*(rect-ymax-y0)/(y1-y0); y=(float)rect-ymax; else if(outCodeOut-right) y=y0+(y1-y0)*(rect-xmax-x0)/(x1-x0); x=(float)rect-xmax; else if(outCodeOut-bottom) x=x0+(x1-x0)*(rect-ymin-y0)/(y1-y0); y=(float)rect-ymin; if(outCodeOut-all=outCode0.all) x0=x; y0=y; CompOutCode(x0,y0,rect,&outCode0); else x1=x; y1=y; CompOutCode(x1,y1,rect,&outCode1); while(!done); if(accept) line(int)x0,(int)y0,(int)x1,(int)y1); main() int gdriver=DETECT,gmode; Rectangle rect; rect.xmin=XL; rect.xmax=XR; rect.ymin=YB; rect.ymax=YT; initgraph(&gdriver,&gmode,c:tc); setcolor(12); line(XL,YT,XR,YT);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点解析-沪科版9年级下册期末试题(轻巧夺冠)附答案详解
- 作业场所职业健康监测试题及答案
- 2025年消费金融用户画像精准营销策略与行业动态分析报告
- 考点解析北师大版8年级数学上册期中试题附答案详解(预热题)
- 2025年智能建筑系统集成与节能降耗在商业综合体节能改造中的应用案例报告
- 2025年汽车轻量化材料在汽车轻量化传动系统制造中的应用与工艺升级报告
- 2025年工业互联网NFV技术赋能工业大数据处理实践报告
- 2025至2030年中国红花籽油行业深度评估及行业投资潜力预测报告
- 售后服务协议的法律风险评估
- 微型企业面试题库带答案详解(基础题)
- DB11∕T 1700-2019 洗染企业等级划分与评定
- 生理健康课件教学课件
- 招聘笔试题及解答(某大型央企)2025年
- DB34T∕ 2615-2016 公路沥青路面同步碎石封层施工技术规程
- 四川省成都市 2022~2023学年高一下期期末适应性考试化学试题(解析版)
- 2024年教师招聘考试公共基础知识复习提纲
- 中考英语688高频词大纲词频表
- DL-T-301-2011发电厂水汽中痕量阳离子的测定离子色谱法
- 河北安装工程消耗量定额计算规则
- 义务教育《数学课程标准》2022年版原文
- 糖尿病肾脏疾病早期预测与诊断专家共识
评论
0/150
提交评论