ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:143.05KB ,
资源ID:4025104      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4025104.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(整理利用C语言图形函数绘图.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

整理利用C语言图形函数绘图.docx

1、整理利用C语言图形函数绘图计算机图形学课程实验 报 告实验题目 班 级 姓 名 学 号 指导教师 日 期 西安理工大学理学院应用数学系二零一二年春季学期实验说明试验目的: 掌握TurboC语言图形函数的使用和学会绘制一般图形。试验地点: 教九楼401 数学系机房实验要求(Direction):1. 每个学生单独完成;2.开发语言为TurboC或C+,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。实验内容:实验题一1.1实验题目用

2、如下图1所示,图中最大正n边形的外接圆半径为R,旋转该正n边形,每次旋转角度,旋转后的的n边形顶点落在前一个正六边形的边上,共旋转N次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n边形。要求:(1) n、R、N、要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。1.2实验目的和意义1. 了解如何利用C语言和图形函数进行绘图;2. 熟悉并掌握C语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对Turbo C进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形

3、模式的控制,并熟练运用图形坐标的设置,包括定点、读取光标、读取x和y轴的最大值以及图形颜色的设置。1.3程序制作步骤(包括算法思想、算法流程图等)算法思想:1.自动搜索显示器类型和显示模式,初始化图形系统,通过printf、scanf语句控制半径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.根据边与角的关系,以

4、及线段定比分点公式,可知旋转后的多边形的各个顶点的坐标 。公式如下: xi=(xi+xi+1/(k+1) y i=(yi+yi+1/(k+1) k=360/(n*d) (n为多边形的边数,d为多边形旋转的度数) 然后与第二步相同,利用划线函数line(),连接形成又一个旋转过的正多边形,这样就形成了所要绘制的图形;4.关闭图形系统。1.4主程序程序代码:/*- 多边形的逐次旋转-*/#include stdio.h#include conio.h#include math.h#include graphics.h#include stdlib.h#include time.hvoid main

5、() int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/ int r; int i,j,n,k,d; float x,y,q; int a100,b100; char str180,str280; printf(请输入正接圆的半径r:n); scanf(%d,&r); printf(请输入多边形的边数n:n); scanf(%d,&n); printf(请输入多边形的个数k:n); scanf(%d,&k); printf(请输入每次的旋转角度d:n); scanf(%d,&d); initgraph(&graphdriver,&graph

6、mode,D:TC); /*初始化图形系统*/ printf(nt注意:maxx=%d,maxy=%dn,getmaxx(),getmaxy(); printf(ntr=%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*3.1415926/180; /*将角增量化为弧度*/ for(i=1;i=n;i+) /*计算初始正n角形顶点坐标*/ ai=(int)(int)x+r*cos(i-1)*q); bi=(int)(int)y-r*sin(i-1)*q);

7、an+1=a1; bn+1=b1; /*闭合正n角形,以便连续画线*/ /*-画k个正多角形-*/ for(i=1;i=k;i+) for(j=1;j=n;j+) /*画一个正多角形*/ line(aj,bj,aj+1,bj+1); for(j=1;j=n;j+) /*计算下一个正多边形顶点坐标*/ aj=(int)(aj+(aj+1-aj)/d); bj=(int)(bj+(bj+1-bj)/d); an+1=a1; bn+1=b1; getch(); closegraph();1.5运行结果图:实验题二2.1实验题目请绘制一个图:屏幕中央有一个半径为R1=160的大圆和一个同心的且半径为R

8、2=120的小圆,同时在大圆和小圆中间均匀分布着12个与大圆和小圆相切的圆。如下图2所示:要求:(1) 分别用12种不同的颜色和填充模式填充12个小圆;(2)用自定义模式填充中间小圆,且用漫延填充方法填充;(3) 用自定义模式填充中间小圆时,填充模式图案自己设计。例如,用字母A 、字母B、字母C填充图案可设计为: 2.2实验目的和意义1.学会运用画圆函数circle(),图形填充函数包括:setfillstyle()、setfillpattern()以及floodfill()来填充圆;2.学会用自定义模式填充指定圆,并且用漫延填充方法填充;3.学会用自定义图案来填充指定圆。2.3程序制作步骤(

9、包括算法思想、算法流程图等)算法思想:1.输入所要求环绕的小圆的个数n,设置画笔颜色,利用circle()画半径为160的大圆,然后画半径为120的小圆并按照输入的模式m选择相应的填充模式。 2.利用圆内接多边形的算法,算出环绕小圆的各个圆心坐标,公式如下: xi=r*cos( (i+1) * 2.0*pi/n)+200.0 yi=200.0-r*sin( (i+1) * 2.0*pi/n) 以20为半径画环绕的n个小圆,并用不同的颜色填充。2.4主程序 #include stdio.h#include conio.h#include math.h#include graphics.h#def

10、ine pi 3.14159265#define MAX 50void main() int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/ double xMAX,yMAX; int i,j,n,m; double r,theta; double sin(double),cos(double); char p18=(char)0x00,(char)0x3c,(char)0x20,(char)0x20, (char)0x38,(char)0x20,(char)0x20,(char)0x20; r=160.0; printf(please inp

11、ut the numble of N=); scanf(%d,&n); initgraph(&graphdriver,&graphmode,D:TC); /*初始化图形系统*/ theta=2.0*pi/n; setcolor(3); circle(200,200,200); setcolor(6); setfillstyle(12,0); setfillpattern(p1,9); circle(200,200,120); floodfill(200,200,6); while(!kbhit() for(j=2;j=n;j+) for(i=0;i0;i-,j-) setfillstyle(E

12、MPTY_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,327); delay(10); /自行车行驶动画的实现 for(i=0;i10;i+) pieslice(37,290,start,end,37); pieslice(175,290,start,end,37); start+=40; end+

13、=40; /处于静止状态的自行车车轮的轴线的绘制 getch(); restorecrtmode(); closegraph();按照国家规定实行审批制的建设项目,建设单位应当在报送可行性研究报告前报批环境影响评价文件。按照国家规定实行核准制的建设项目,建设单位应当在提交项目申请报告前报批环境影响评价文件。按照国家规定实行备案制的建设项目,建设单位应当在办理备案手续后和开工前报批环境影响评价文件。(1)结合评价对象的特点,阐述编制安全预评价报告的目的。3.5运行结果图 环境总经济价值环境使用价值环境非使用价值 1)规划实施对环境可能造成影响的分析、预测和评估。主要包括资源环境承载能力分析、不良

14、环境影响的分析和预测以及与相关规划的环境协调性分析。参考文献【1】王汝传,黄海平,林巧民计算机图形学教程(第二版)北京:人民邮电出版社,2009 4.环境保护地方性法规和地方性规章【2】谭浩强C语言程序设计北京:清华大学出版社,1999 1.建设项目环境影响评价文件的报批本次实验总结或体会要加强自己的编程开发能力,以及对事物要有极强的观察力和洞察力,还有通过本次试验发现了原来编程这么有意思,做出一道题可以这么有成就感 。 对于不同的评价单元,可根据评价的需要和单元特征选择不同的评价方法。教师评分 市场价格在有些情况下(如对市场物品)可以近似地衡量物品的价值,但不能准确度量一个物品的价值。三者的关系为: 3.划分评价单元 1.建设项目环境影响评价机构的资质管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1