版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验内容一: 1实现图形的生成算法,实现直线、圆、椭圆的生成算法,对各种算法进行效率及效果的分析和比较,学有余力的同学可在对现有算法理解的基础上,能自行设计二维图形的生成算法并编程实现。 2实现填充算法,能搞实现矩形、多边形、圆、椭圆的填充。3实现裁剪算法,理解并实现直线和多边性裁剪,对各种直线裁剪算法进行效率及效果的分析和比较。4实现图形的坐标变换,实现二维图形的基本变换,包括平移、旋转、比例、对称变换。5实现简单的三次Bezier曲线。实验指导:第一步:进一步了解计算机图形学课程的知识结构体系,绘制整个课程的知识结构逻辑示意图,类似于:(图一)第二步:根据所绘制的知识结构图,设计DOS菜单
2、,要利用多级菜单实现各种功能。比如,主界面是大项,诸如二维线画图元、二维填充图元、二维裁剪等,子菜单使这些大项中的一些功能或者小项。#include graphics.hVoid DDACircle()Void m_zhongzitianchong().main()int r=100; int a=0; int b=1; int d=1; int s=1; int x1,y1,x2,y2,x3,y3,x,y,h; int color=1,color2=1; int gdriver,gmode; gdriver=DETECT; gmode=0; initgraph( &gdriver,&
3、amp;gmode," "); setcolor(1); while(b) printf("what do you want to paintn0. for cirlen1. for a linen2. for rectanglen3. for trigonnyou choose:"); scanf("%d",&a); printf("%d",a); switch(a) case 0 : cleardevice(); printf("nplease input (r,x1,y1,color):&q
4、uot;); scanf("%d %d %d %d",&r,&x1,&y1,&color); DDACircle(r,x1,y1,color); while(d) printf("n Do you want to change?n1 for pingyin2 for fangdan3 for tianchongn1 ,2or3 you choose:"); scanf("%d",&s); switch(s) case 1: printf("n0 forshuzhi n1 for shu
5、ipingnyou choose:"); scanf("%d",&h); m_cirlepinyi(&x1,&y1,h); DDACircle(r,x1,y1,color); break; case 2: m_cirlefangda(&r); DDACircle(r,x1,y1,color); break; case 3: printf(" please input your like color:"); scanf("%d",&color2); m_zhongzitianchong(
6、x1,y1,1,color2,color); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&d); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&b); break; ca
7、se 1 : cleardevice(); printf("nplease input (x1,y1,x2,y2,color):"); scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&color); dda_line(x1, y1, x2, y2,color); while(d) printf("n Do you want to change?n1 for pingyin2 for fangdan3 for tianchongn1 or 2 you choose:"
8、;); scanf("%d",&s); switch(s) case 1: printf("n0 for shuzhi n1 for shuipingnyou choose:"); scanf("%d",&h); m_pingyi(&x1,&y1,&x2,&y2,h); dda_line(x1, y1, x2, y2,color); break; case 2: m_fangda(&x1,&y1,&x2,&y2); dda_line(x1, y1, x2,
9、 y2,color); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&d); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&b); break; case 2: clear
10、device(); printf("nplease input (x1,y1,x2,y2,color):"); scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&color); m_rectangle(x1,y1,x2,y2,color); while(d) printf("n Do you want to change?n1 for pingyin2 for fangdan3 for tianchongn1,2or3 you choose:"); scanf(&q
11、uot;%d",&s); switch(s) case 1: printf("n0 for shuzhi n1 for shuipingnyou choose:"); scanf("%d",&h); m_pingyi(&x1,&y1,&x2,&y2,h); m_rectangle(x1, y1, x2, y2,color); break; case 2: m_fangda(&x1,&y1,&x2,&y2); m_rectangle(x1, y1, x2, y2,co
12、lor); break; case 3: printf(" please input your like color:"); scanf("%d",&color2); x=(x1+x2)/2; y=(y1+y2)/2; m_zhongzitianchong(x,y,1,color2,color); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&
13、amp;d); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you choose:"); scanf("%d",&b); break; case 3: cleardevice(); printf("nplease input (x1,y1,x2,y2,x3,y3,color):"); scanf("%d %d %d %d %d %d %d",&x1,&y1,&x2,&am
14、p;y2,&x3,&y3,&color); m_trigon(x1,y1,x2,y2,x3,y3,color); printf("n Do you want to pinyi?if you want to please choose 1 else 0n1 or 0 you choose:"); while(d) printf("n Do you want to change?n1 for pingyin2 for fangdan3 for tianchongn1,3 or 2 you choose:"); scanf("
15、%d",&s); switch(s) case 1: printf("n0 for shuzhi n1 for shuipingnyou choose:"); scanf("%d",&h); m_trigonpinyi(&x1,&y1,&x2,&y2,&x3,&y3,s); m_trigon(x1,y1,x2,y2,x3,y3,color); break; case 2: m_trigonfangda(&x1,&y1,&x2,&y2,&x3,
16、&y3); m_trigon(x1,y1,x2,y2,x3,y3,color); case 3: printf(" please input your like color:"); scanf("%d",&color2); x=(x1+x2+x3)/3; y=(y1+y2+y3)/3; m_zhongzitianchong(x,y,1,color2,color); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0 you
17、choose:"); scanf("%d",&d); printf("nDo you want to continue.nif you want to please choose 1 else 0n1 or 0you choose:"); scanf("%d",&b); 实验内容二: 自由选题做一个小程序或小游戏,开发工具不限,要求必须用到几何变换(平移、旋转、比例)所学内容。计算机图形学试验报告专 业: 班 级: 学 号: 姓 名: 指导教师: 试验地点 试验思路(写出试验所参考的理论或算法步骤) XXXX
18、XXXX XXXXXXXXXXXX XXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX。 XXXXXXXX XXXXXXXXXXXX XXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXXX XX
19、XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX。主要程序代码 XXXXXXXX XXXXXXXXXXXX XXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX。 XXXXXXXX XXXXXXXXXXXX XXXXXXX XXXXXXXXXXX XXXXXXXX XXXXX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动合同变更指南
- 临时艺术工作室租赁合同
- 保障性住房管桩施工合同
- 建筑设计杂工临时合同
- 农业土地租赁合同:种植园合作
- 建筑智能化预付款担保合同
- 农业科技园钢筋施工合同
- 环保工程水暖系统施工协议
- 电竞比赛导演聘用协议
- 地铁站内部油工施工合同
- 2024年小学闽教版全册英语词汇表
- 课题开题汇报(省级课题)
- 清真食品安全管理制度
- 学校心理健康教育合作协议书
- 2024江苏省沿海开发集团限公司招聘23人(高频重点提升专题训练)共500题附带答案详解
- 2024年初级社会体育指导员(游泳)技能鉴定考试题库(含答案)
- 湖北省危险废物监管物联网系统管理计划填报说明
- Unit6ADayintheLife教学设计2024-2025学年人教版(2024)英语七年级上册
- 苏教版三年级上册数学期末考试试卷及解析答案
- 2024年个人劳务承包合同书
- 知道网课智慧《睡眠医学(广州医科大学)》测试答案
评论
0/150
提交评论