收藏 分享(赏)

计算机图形学利用C语言图形函数绘图.doc

上传人:buyk185 文档编号:6102772 上传时间:2019-03-27 格式:DOC 页数:15 大小:282.96KB
下载 相关 举报
计算机图形学利用C语言图形函数绘图.doc_第1页
第1页 / 共15页
计算机图形学利用C语言图形函数绘图.doc_第2页
第2页 / 共15页
计算机图形学利用C语言图形函数绘图.doc_第3页
第3页 / 共15页
计算机图形学利用C语言图形函数绘图.doc_第4页
第4页 / 共15页
计算机图形学利用C语言图形函数绘图.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、计 算 机 图 形 学 课程实验 报 告实验题目 利用 C 语言图形函数绘图 班 级 姓 名 学 号 指导教师 日 期 Computer Graphics Report Of course experiment -图形学课程实验报告- - 1 -实验说明试验目的: 掌握 TurboC 语言图形函数的使用和学会绘制一般图形。试验地点: 教九楼 401 数学系机房实验要求(Direction ):1. 每个学生单独完成;2.开发语言为 TurboC 或 C+,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运

2、行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。实验内容实验题一1.1 实验题目用如下图 1 所示,图中最大正 n 边形的外接圆半径为 R,旋转该正 n 边形,每次旋转 角度,旋转后的的 n 边形顶点落在前一个正六边形的边上,共旋转 N 次,请上机编程绘制 N+1 个外接圆半径逐渐缩小且旋转的正 n 边形。要求: (1) n、R、N 、要求可以人为自由控制输入;(2)N+1 个正六边形的中心( 即外接圆的圆心 )在显示屏幕中心。CBAR1R210图 11.2 实验目的和意义1. 了解如何利用 C 语言和图形函数进行绘图;2. 熟悉并掌握 C 语言的图形模式控制函数,图

3、形屏幕操作函数,以及基本图形函数;利用 C 语言图形函数绘图实验 1如左图(一)所示:n=6=100、N =1、R=R1、旋转一次。依次类推,共旋转 N次。-图形学课程实验报告- - 2 -3.通过对 Turbo C 进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制 N+1 个正 n 边形,了解图形系统初始化、图形系统关闭和图形模式的控制并熟练运用图形坐标的设置,包括定点、读取光标、读取 x 和 y 轴的最大值以及图形颜色的设置。1.3 程序制作步骤(包括算法思想、算法流程图等)1.自动搜索显示器类型和显示模式,初始化图形系统,通过 printf、scanf 语句控制半径

4、r、边数 n、多边形的个数 k、边的每次旋转角度 d,的自由输入;2.给定一内接圆半径 r,由圆内接多边形的算法公式:xi=r*cos(i+1) *2.0*pi/n)+320.0 yi=240.0-r*sin(2.0*pi/n *(i+1) 确定出多边形 N 的各个顶点坐标,然后利用划线函数 line(),连接相邻两点,即形成一个正多边形。3.根据边与角的关系,以及线段定比分点公式,可知旋转后的多边形的各个顶点的坐标 。公式如下:xi=(xi+xi+1/(k+1) y i=(yi+yi+1/(k+1)k=360/(n*d) (n 为多边形的边数,d 为多边形旋转的度数) 然后与第二步相同,利用

5、划线函数 line(),连接形成又一个旋转过的正多边形,这样就形成了所要绘制的图形;4.关闭图形系统。1.4 主程序/*- 多边形的逐次旋转-*/#include #include “conio.h“#include “math.h“#include #include “stdlib.h“#include “time.h“#define pi 3.1415926-图形学课程实验报告- - 3 -#define ARRAY_LEN 128void main()int graphdriver = DETECT,graphmode; /*自动搜索显示器类型和显示模式*/int r = 0;int i

6、 = 0;int j = 0;int n = 0;int k = 0;int d = 0;float x = 0;float y = 0;float q = 0;int aARRAY_LEN = 0;int bARRAY_LEN = 0;char str1ARRAY_LEN = 0;char str2ARRAY_LEN = 0;printf(“请输入正接圆的半径 r:“);scanf(“%d“,printf(“n 请输入多边形的边数 n:“);scanf(“%d“,printf(“n 请输入多边形的个数 k:“);scanf(“%d“,printf(“n 请输入每次的旋转角度 d:“);-图形

7、学课程实验报告- - 4 -scanf(“%d“,initgraph( /*初始化图形系统*/printf(“nn 注意 :maxx=%d,maxy=%dn“,getmaxx(),getmaxy();printf(“n r=%d, n=%d, k=%d, d=%d“,r,n,k,d);x = (getmaxx()+1)/2.0;y = (getmaxy()+1)/2.0;q = 360/n; /*角增量*/q = q*pi/180; /*将角增量化为弧度*/for(i=0;i#include“graphics.h“#include#includevoid main()void *w = NUL

8、L;int driver=DETECT;int mode=0;int i = 0;int j = 0;int start = 0;int end = 0;initgraph(/初始化图形系统cleardevice();/清除屏幕和图形缓冲区setbkcolor(9);/用指定的颜色值来设置当前的背景色setcolor(13);/设置前景颜色 start=0;end=180;circle(387,290,37);circle(525,290,37);line(404,217,398,230);-图形学课程实验报告- - 12 -line(436,217,429,230);line(398,230

9、,429,230);line(413,230,387,290);line(387,290,525,290);line(408,243,484,243);line(387,290,484,243);line(484,243,525,290);line(444,290,484,243);line(444,290,446,279);line(444,290,443,300);line(438,277,444,278);line(435,300,451,301);line(484,243,487,233);line(472,233,502,233); /自行车基本轮廓的绘制w=malloc(image

10、size(350,200,562,327);/动态申请空间getimage(350,200,562,327,w);/保存图像函数for(i=350,j=0; i0 ;i-,j-)setfillstyle(EMPTY_FILL,0);/设置填充模式和颜色 pieslice(387+j,290,start,end,37);/绘制并填充一个扇形pieslice(525+j,290,start,end,37);start+=40;end+=40;delay(5); /处于运动状态的自行车车轮的轴线的绘制putimage(i-1,200,w,COPY_PUT);/输出图像函数line(2,327,562

11、,327);delay(10); /自行车行驶动画的实现 for(i=0;i10;i+)-图形学课程实验报告- - 13 -pieslice(37,290,start,end,37);/绘制并填充一个扇形pieslice(175,290,start,end,37);/绘制并填充一个扇形start+=40;end+=40; /处于静止状态的自行车车轮的轴线的绘制getch();restorecrtmode();/将屏幕模式恢复为先前的 initgraph 设置closegraph();3.5 运行结果图图 3.5.1 自行车在起点图 3.5.1 自行车在中间图 3.5.1 自行车在中点-图形学课程实验报告- - 14 -参考文献1 王汝传,黄海平,林巧民计算机图形学教程(第二版) 北京:人民邮电出版社,20092谭浩强. C 语言程序设计M. 北京:清华大学出版社,2005.本次实验总结或体会通过本次试验我看到了在计算机图形学这门课中有意义的一面,增加了我学习这门课的兴趣;但同时我也认识到了自身在语言掌握中的不足和有待加强的地方;在以后的学习中要更加努力、要多动手、多学习。教师评分

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报