2015年燕山大学里仁学院 计算机图形实验报告
- 格式:docx
- 大小:92.24 KB
- 文档页数:10
计算机图形学实验报告实验一 3D模型的加载、渲染与三维操作学院:专业班级:指导老师:学号:姓名:完成日期:目录一、实验目的 (3)二、使用的工具软件及环境 (3)三、实验内容 (3)四、实验步骤 (3)五、思考 (12)一、实验目的1、掌握在Microsoft Visual Studio环境中使用OpenGL、GLUT 和GLUI;2、了解计算机图形学固定流水线;3、了解OpenGL编程基础;4、掌握三维观察的数学表达和程序实现;5、掌握多边形网格的绘制;二、使用的工具软件及环境Microsoft Visual Studio 2010、OpenGL、Glut、Glui三、实验内容1、在VS 2010中配置OpenGL环境;2、编译简单的GLUT程序;3、编译GLUI源代码,并在调试模式下执行6个示例程序;4、在给定的工程中添加绘制简单几何体的代码;5、在给定的工程中添加读取、绘制三维模型的代码;6、在给定的工程中添加旋转、平移和缩放的控制代码;四、实验步骤1、安装Microsoft Visual Studio软件版本选择:Microsoft Visual Studio 2010以上版本2、VS2010中配置GLUT1)下载GLUT。
Windows环境下的GLUT下载地址:/resources/libraries/glut/glutdlls37be ta.zip2)将下载的压缩包解开,将得到5个文件:glut.h、glut.lib、glut32.lib、glut.dll、glut32.dll。
3)将glut.h放到"%WinDir%\ProgramFiles(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl\"文件夹中。
4)将glut.lib和glut32.lib放到"%WinDir%\ProgramFiles(x86)\Microsoft Visual Studio 10.0\VC\lib\"文件夹中。
《计算机图形图像处理》实验报告册学院:旅游与环境学院专业:地理信息系统教师:肖冰(副教授)组员:周伟(41209163)刘杰(41209165)苟芬(41209190)马芳(41209179)陈家浩(41209166)基于MATLAB图像增强处理实验时间:2015年6月24日实验背景:图像增强处理可以使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。
实验目的:1.了解MATLAB的操作环境和基本功能。
2.掌握MATLAB中图像增强处理的几种技术的使用。
3.加深理解图像增强处理的实验原理。
实验环境:Windws7MATLAB 7.0二.实验原理数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程。
在图像处理中,图像增强技术对于提高图像的质量起着重要的作用。
本文先对图像增强的原理以及各种增强方法进行概述,然后着重对灰度变换、直方图均衡化、平滑和锐化等几种常用的增强方法进行了深入的研究,在学习数字图像的基本表示与处理方法的基础上,针对图像增强的普遍性问题,研究和实现常用的图像增强方法及其算法,通过Matlab实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的适用场合,并对其图像增强方法进行性能评价。
三.实验内容及步骤:实验流程图如下:1. 彩色图像的均衡化步骤:1统计原图像素每个像素的个数2统计原图像<每个灰度级的像素的累积个数 3家里灰度级得映射规则4将原图每个像素点的灰度映射到新图1. clear all2. I=imread('F:\computer\哪吒.jpg '); %读入JPG 彩色图像文件3. imshow(I) %显示出来4. title('哪吒')5. I_gray = rgb2gray(I); %灰度化后的数据存入数组6. imwrite(I_gray,'灰度图.bmp'); %保存灰度图像7. figure,imshow(I_gray);8. title('灰度图')9.10. [height,width]=size(I_gray); %测量图像尺寸参数11. p=zeros(1,256); %预创建存放灰度出现概率的向量 12. for i=1:height 13. for j=1:width14. p(I_gray(i,j) + 1) = p(I_gray(i,j) + 1) + 1; 15. end 16. end17. s=zeros(1,256); 18. s(1)=p(1); 19.for i=2:256图片数据及软件准备 RGB 图像读入代码输入图像及结果输出结果分析与讨论20. s(i)=p(i) + s(i-1); %统计图像中<每个灰度级像素的累积个数,s(i):0,1,```,i-121.end22.23.for i=1:25624. s(i) = s(i)*256/(width*height); %求灰度映射函数25.if s(i) > 25626. s(i) = 256;27. end28.end29.30.%图像均衡化31.I_equal = I;32.for i=1:height33.for j=1:width34. I_equal(i,j) = s( I(i,j) + 1);35. end36.end37.figure,imshow(I_equal) %显示均衡化后的图像38.title('均衡化后图像')39.imwrite(I_equal,'哪吒.bmp');结果显示如下:2对于灰度图的直方图均衡化:有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。
《图形图像处理》(2014 - 2015 学年第一学期)实验报告书学生姓名:班级:学号:院系:计算机系指导教师:2014年12月目录一、目的 (2)二、要求 (2)三、操作环境与时间 (1)四、项目名称与记录 (3)任务一(名称) (x)任务二(名称) (x)任务三(名称) (x)任务四(名称) (x)任务五(名称) (x)任务六(名称) (x)任务七(名称) (x)任务八(名称) (x)任务九(名称) (x)任务十(名称) (x)五、总结 (x)一、目的1、加深、巩固学生所学课程的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。
2、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
使学生得到收集资料、整理相关素材、处理图片、制作动画等实践训练,更好地掌握基本理论知识及其实际操作能力,从而达到提高学生素质的最终目的。
3、利用所学知识,调研查阅相关信息,发挥创造力,掌握运用专业动画设计与制作软件,与其它相关设计工具的综合应用的技能及独立设计的综合能力。
二、要求1、在规定时间完成期末大作业的项目任务。
2、通过这次大作业,要求学生在指导教师的指导下,独立完成作品设计的全部内容。
3、通过调查研究,学会收集资料、整理相关素材、确定主题等。
4、用所学的知识学会处理图像,掌握课程设计的基本步骤和方法。
5、报告书要做到文字通畅、论点正确、论述有据。
6、报告书以书面打印形式的报告交给指导教师,作品刻成光盘存档。
7、在教师指导下,发挥学生的主观能动性、独立动手进行工作。
8、增强学生理论与实践的结合能力,为毕业设计打好基础。
三、操作环境与时间操作地点:计算机系软件实验室S603系统要求:Windows XP以上操作系统软件要求:使用Flash CS6、Photoshop CS6等专业软件四、项目名称与记录:任务一(一)主题内容:1、设计作品名称:梦幻海报设计2、设计思想:画面唯美,有强烈的视觉效果3、设计元素:滤镜、色彩平衡、亮度/饱和度、图层蒙板、剪贴蒙板等。
计算机绘图实习报告范文Model report of computer graphics practice( 实习报告)单位:____________________姓名:____________________日期:____________________编号:YB-BH-048458计算机绘图实习报告范文实习目的:1.通过“计算机绘图”实习,进一步熟悉计算机绘图常用的命令,掌握如何绘制装配图的技能和方法,培养分析问题和解决问题的能力。
2.通过装配图的绘制,进一步巩固所学的知识,为后续课程的学习打下良好的基础,也为在今后的工作中应用的计算机绘图作基本技能的训练。
3.零部件测绘和计算机绘图大作业主要是培养学生的自学能力和动手能力,学生要学会借助有个关手册、资料,自己体验一下怎样当一名合格的设计师,以培养学圆一丝不苟的工作作风,为今后走向技术工作岗位打下良好的基础。
实习步骤:1) 星期一~星期二:对机床用平口虎钳进行观察与测绘并记录机床用平口虎钳个零部件的测绘数据,小组各成员分工绘出各零件的草图。
2) 运用AutoCAD软件对各零部件进行绘制得出零件绘制图、组装图并将其分别以A4、A3纸张打印。
3) 小组提交机床用虎口钳的零件图的打印图,小组成员提交其组装图的打印图,并提交实习报告,完成实习。
实习心得:一个星期的测绘与计算机绘图实习将要结束,在这为期一周的实习中,让我认识到成为一个绘图员,我所掌握的还不够,我更应该多练习在绘图中对个种操作。
每个组都努力的分析着每一个部件,特别是对于机床用虎口钳的零件:固定钳身该部件测量与绘图时,各施各法,对其的测绘付出的努力让我体会到要成为一名该专业的人才是要付出很多血汗。
过去几天让我体会到学海无崖,苦作舟。
要比以前付出更多才能在原来的层次有所突破。
最后,还要在次感谢指导老师的悉心指导,您在要紧的关头能把我们的致命错误指出来,让我在快到的AutoCAD 中级考试中更有信心。
计算机图形学实验报告一、问题分析二、实验平台系统:win10软件:vc2010语言:C#三、算法设计1.点的生成:private void point_Click(object sender, EventArgs e){for (int i = 0; i < 100; i=i+10){map.SetPixel(i, i, Color.Blue);//直接生成在位图对象中 }pictureBox1.Image = map;}2.直线的生成:运用了橡皮筋技术,用鼠标画直线需要确定两个端点//MouseClick事件if (PressNum == 0)//第一点,保留{FirstX = e.X;FirstY = e.Y;OldX = e.X;OldY = e.Y;}else {//第二点,画线g.DrawLine(MyPen, FirstX, FirstY, e.X, e.Y);}PressNum++;if (PressNum >= 2) PressNum = 0;//画线完毕,清零,为画下一条线做准备//MouseMove事件if (MenuID == 1 && PressNum == 1){if (!(e.X == OldX && e.Y == OldY)) {g.DrawLine(BackPen, FirstX, FirstY, OldX, OldY);g.DrawLine(MyPen, FirstX, FirstY, e.X, e.Y);OldX = e.X;OldY = e.Y;}}3.生成圆的Bresenham算法:操作:先用鼠标确定圆心,再用鼠标确定圆上任意一点(1)初始条件:x0=0,y0=R,d0=3-2R。
(2)递推公式:x i+1=x i+1当d i>0时,y i+1=y i-1, d i+1=d i+4(x i-y i)+10当d i≤0时,y i+1=y i, d i+1=d i+4x i+6(3)终止条件:x i>y i。
实验一Windows多线程编程一、实验目的与要求了解windows多线程编程机制掌握线程同步的方法二、实验环境和软件Windows XPVC 6.0三、实验内容1.创建线程:HANDLE CreateThread (LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);2.线程的挂起与恢复DWORD SuspendThread(HANDLE hThread);DWORD ResumeThread(HANDLE hThread);3.线程终结BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);四、实验步骤这个程序首先创建两个线程,当输入为1时,执行线程,否则挂起线程。
#include <windows.h>#include <iostream>using namespace std;DWORD WINAPI FunOne(LPVOID param){while(true){Sleep(1000);cout<<"hello! ";}return 0;}DWORD WINAPI FunTwo(LPVOID param){while(true){Sleep(1000);cout<<"world! ";}return 0;}int main(int argc, char* argv[]){int input=0;HANDLE hand1=CreateThread (NULL, 0, FunOne, (void*)&input, CREATE_SUSPENDED, NULL);HANDLE hand2=CreateThread (NULL, 0, FunTwo, (void*)&input, CREATE_SUSPENDED, NULL);while(true){cin>>input;if(input==1){ResumeThread(hand1);ResumeThread(hand2);}else{SuspendThread(hand1);SuspendThread(hand2);}};TerminateThread(hand1,1);TerminateThread(hand2,1);return 0;}:实验结果:实验二蒙特卡罗法求PI一、实验目的和要求蒙特卡洛算法可理解为通过大量实验,模拟实际行为,来收集统计数据。
实习报告计算机专业绘图实习报告通过本次实习我们感觉丰富了很多,我们能够更进一步的掌握专业工程图的绘制方法并能够运用所学的专业知识完成对工程图的读图,能够完成所给工程图的绘制与原理分析。
我们感觉有了很大的提高。
实习期间我们共分三个小组每个小组各有分工。
第一小组:图中各设备结构、功能、型号及选择原则简洁第二小组:图中各种典型电路的简介第三小组:图示电路工作分析。
每个小组之间共同配合为本次实习都贡献出了一定的努力,才使得我们的本次实习较好的成果。
在每个小组的努力工作之下,并根据实习进程的安排。
最后我们将劳动成果进行了汇总,为大家呈现的结果如下:实习内容篇(1)60KV电器主接线的绘制与分析一、计算机绘图:(第一图)二、60KV电气主接线(上图)简介与原理分析AB1、电流互感器原理:跟变压器工作原理相似,初级线圈中通有交流电流时,铁芯(或磁芯)中便产生交流磁通,使次级线圈中感应出电压(或电流),只是其原边绕组传连载被测电路中,切砸数很少,副边绕组接电流表,继电器电流圈等低阻抗负载,近似短路。
结构:电流互感器的结构较为简单,由相互绝缘的一次绕组、二次绕组、铁心以及构架、壳体、接线端子等组成。
型号:电流互感器的型号由字母符号及数字组成,通常表示电流互感器绕组类型、绝缘种类、使用场所及电压等级等,字母符号含义如下:第一位字母:L——电流互感器。
第二位字母:M——母线式(穿心式);Q——线圈式;Y——低压式;D——单匝式;F——多匝式;A——穿墙式;R——装入式;C——瓷箱式。
第三位字母:K——塑料外壳式;Z——浇注式;W——户外式;G——改进型;C——瓷绝缘;P——中频。
第四位字母:B——过流保护;D——差动保护;J——接地保护或加大容量;S——速饱和;Q——加强型。
字母后面的数字一般表示使用电压等级。
例如:LMK-0.5S型,表示使用于额定电压500V及以下电路,塑料外壳的穿心式S级电流互感器。
LA-10型,表示使用于额定电压10KV电路的穿墙式电流互感器。
《计算机图形学》实验报告学号:0908610211姓名:宋雪英班级:计算机0961项目:1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。
2.利用方形、线性两种画刷来绘制圆和椭圆。
3.实现交互式二维图形的放缩,旋转和对称变换2012年12月25日基本图形的生成技术一、实验目的在一个图形系统中,基本图形(也称为图元、图素等)的生成技术是最基本的,任何复杂的图形都是由基本图形组成的,基本图形生成的质量直接影响该图形系统绘图的质量。
所以,需要设计出精确的基本图形生成算法,以确保图形系统绘图的精确性。
本次实验的目的就是利用Bresenham 算法和中心画线法两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。
利用方形、线性两种画刷来绘制圆和椭圆。
实现交互式二维图形的放缩,旋转和对称变换。
二、实验任务1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。
2.利用方形、线性两种画刷来绘制圆和椭圆。
3.实现交互式二维图形的放缩,旋转和对称变换。
三、画直线的实验内容任务一:利用其它两种画直线方法实现放大10陪显示方法交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。
1、设计思路第一步:建立DDAMouseLine工程文件;第二步:向视图类中添加自定义的成员变量用鼠标右键单击视图类,选择“Add Member Variable…”,添加下面三个成员变量。
proctected :CPoint m_p1; //起点CPoint m_p2; //起点CPoint m_p; //点击鼠标时点的取值第三步:向视图类中添加自定义的成员函数原型:public:V oid DDAMouseLine(CDC *pDC, int x0, int y0, int x1, int y1, COLORREF color);Line()函数以当前位置所在的点为直线的起点,另指定一个点为直线的终点,画出一段直线。
电脑图文设计设计实验报告(一)实验名称熟悉Photoshop和Illustrator的基本操作实验类型验证演示综合设计班级学号姓名指导教师成绩√一、实验目的说明认识Photoshop和Illustrator的菜单栏和快捷工具条,熟悉Photoshop和Illustrator的基本操作。
二、实验内容及过程分析实验内容:认识PS与AI的常用作图工具,并写出PS中不少于20个工具,AI中不少于20个工具的功能作用。
过程分析:PS作图工具::矩形选框工具,可以将现有的图部分截取,截取的形状由自己定,智慧可以新建图层,将截取的部分图形放到新建的图层中。
这个功能主要用于将不同图片我们所需要的部分放到不同图层中,进行有效拼接与叠加。
:左侧工具栏的磁性套索工具,点击需要抠出图片的轮廓,沿着轮廓移动,到转折点再次点击,以此下去,直到完全包围住需要抠出的图片,双击;单击右侧的图层面板,双击图层解锁图层,然后按下CTRL+C完成复制图片;转到需要粘贴的图片,按下CTRL+V 进行图片粘贴,即可完成抠图。
:快速选择工具,前面步骤同套索工具,它也是用来抠图的,但是比上面一个工具使用更方便。
抠出图片的轮廓后,直接拖动图片到另一个图层当中即可。
:剪切工具,它可以对现有的图片进行剪切。
能够将图片分成所选择的几等份。
:吸管工具,先选择吸管工具,然后用吸管工具在已有的图片中相应位置吸一下,选定需要变色的文字,文字就可以变成我们所想要的颜色了。
: 污点修复画笔工具,选择可以调节画笔大小来增加工作效率。
用点修复画笔工具在细线处涂抹看一下效果,在涂抹后细线消失了。
:画笔工具,选取一定的颜色,在指定的区域手动地用鼠标画出图案。
:仿制图章工具,仿制图章是photoshop软件中的一个很重要而且很神奇的工具,应用十分广泛。
比如,你想要快速复制全部或者部分图像;比如,你想修补图像;比如,你想添加同样格式的文字……这些都可以应用到仿制图章工具。
所以,掌握它的用法很重要。
实验题二2.1实验目的和意义1. 了解如何利用C++语言和图形函数进行绘图,同时熟练掌握C++图形绘制环境;2. 掌握C++语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对C++进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制园、圆弧、线段变换的图形等,了解图形系统初始化、图形系统关闭和图形模式的控制,并熟练运用图形坐标的设置以及图形颜色的设置。
2.2主程序1、利用各种画弧、直线园等函数绘出人物头像程序代码:#include <graphics.h>#include <conio.h>#include <math.h>#define PI 3.1415926main(){ int x,y;int stangle,endangle,r1,r2,r3;int xasp,yasp;initgraph(640, 480);x =300;y = 250;stangle = 30;endangle = 150;r1 = 200;r2 = 8;r3 = 45;ellipse(x, y, 0, 360, 150, 200); /*画脸的轮廓*/ellipse(x-65,y-80,0,360,30,20); /*左眼睛*/circle(x-65,y-80,r2); /*眼珠*/arc(x-65,y-80,stangle,endangle,r3); /*眉毛*/ellipse(x+65,y-80,0,360,30,20); /*右眼睛*/circle(x+65,y-80,r2);arc(x+65,y-80,stangle,endangle,r3);pieslice(x,y+30,50,130,40); /*鼻子*/pieslice(x-150,y,85,270,40); /*左耳朵*/pieslice(x+150,y,270,95,40); /*右耳朵*/fillellipse(x,y+90,r3,0.5*r3*(long)xasp/(long)yasp); /*嘴*/ getch();closegraph();}2、利用挂起控制圆的大小动态变化程序代码:#include <graphics.h>#include <conio.h>main(){ int i=0;int j=0;initgraph(640, 480);for(i=3;i<10;i++){setcolor(YELLOW);circle(300+i*10,240,10+i*10);Sleep(500);}for(j=0;j<7;j++){setcolor(YELLOW);circle(400+j*10,240,100-j*10);Sleep(500);}getch();closegraph(); }实验题三3.1实验目的和意义1. 了解如何利用C++语言和图形函数进行绘图,同时熟练掌握C++图形绘制环境;2. 掌握C++语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对C++进行图形程序设计的基本方法的学习,能绘制出动态的图形;4. 通过绘制动态变换的园、线段和走动的轮,了解图形系统初始化、图形系统关闭和图形模式的控制,并熟练运用图形坐标的设置以及图形颜色的设置。
3.2主程序1.绘制一个四瓣花图案程序代码:#include <graphics.h>#include <conio.h>#include <math.h>#define PI 3.1415926main(){int x1, x2, y1, y2, d=80;float r, a, c=0.6;initgraph(640, 480);setcolor(RED);for(a=0;a<2*PI;a+=PI/360){r = d * (c + sin(4 * a));x1=300+(int)(r*cos(a));y1 = 200 + (int)(r * sin( a));x2 = 300 + (int)(r * cos(a + PI/5));y2 = 200 + (int)(r * sin(a + PI/5));line(x1,y1,x2,y2); /*绘制四瓣花形图案 */Sleep(10);}getch();closegraph();}2.绘制一个能够地面走动轮程序代码:#include <graphics.h>#include <conio.h>main(){int i,x,y;int stangle=0,endangle=50,radius=80;initgraph(640, 480);x = 180;y = 320;for(i=0;i<=80;i++){x=x+5;stangle=(stangle-10)%360; /*圆弧的起始角 */endangle=(endangle-10)%360; /*圆弧的终止角*/ line(100,y+80,580,y+80); /*道路 */circle(x,y,radius); /*车轮外圆 */circle(x,y,radius-50); /*车轮内圆*/circle(x,y,radius-70);arc(x,y,stangle,endangle,radius-35);arc(x,y,stangle+90,endangle+90,radius-35);arc(x,y,stangle+180,endangle+180,radius-35);arc(x,y,stangle+270,endangle+270,radius-35);Sleep(200);if(i!=80) setcolor(BLACK); /*重绘车轮 */circle(x,y,radius);circle(x,y,radius-50);circle(x,y,radius-70);arc(x,y,stangle,endangle,radius-35);arc(x,y,stangle+90,endangle+90,radius-35);arc(x,y,stangle+180,endangle+180,radius-35);arc(x,y,stangle+270,endangle+270,radius-35);setcolor(WHITE);}getch();closegraph();}实验题四4.1实验目的和意义1. 了解如何利用C++语言和图形函数进行绘图,同时熟练掌握C++图形绘制环境;2. 掌握C++语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对C++进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形模式的控制,并熟练运用图形坐标的设置以及图形颜色的设置。
4.2实验题目用如下图1所示,图中最大正n边形的外接圆半径为R,旋转该正n边形,每次旋转θ角度,旋转后的的n边形顶点落在前一个正六边形的边上,共旋转N 次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n边形。
要求:(1) n、R、N、θ要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。
4.3主程序程序代码:#include "stdio.h"#include "conio.h"#include "math.h"#include "graphics.h"#include "stdlib.h"#include "time.h"void main(){int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/ int r;int i,j,n,k,d;float x,y,q;int a[100],b[100];char str1[80],str2[80];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,&graphmode,"E:\\WSM"); /*初始化图形系统*/printf("\n\tr=%d, n=%d, k=%d, d=%d",r,n,k,d);x=320;y=240;q=360/n; /*角增量*/q=q*3.1415926/180; /*将角增量化为弧度*/for(i=1;i<=n;i++) /*计算初始正n角形顶点坐标*/ {a[i]=(int)((int)x+r*cos((i-1)*q));b[i]=(int)((int)y-r*sin((i-1)*q));}a[n+1]=a[1];b[n+1]=b[1]; /*闭合正n角形,以便连续画线*//*--------画k个正多角形-----------*/for(i=1;i<=k;i++){for(j=1;j<=n;j++) /*画一个正多角形*/line(a[j],b[j],a[j+1],b[j+1]);Sleep(100);for(j=1;j<=n;j++) /*计算下一个正多边形顶点坐标*/{a[j]=(int)(a[j]+(a[j+1]-a[j])/d);b[j]=(int)(b[j]+(b[j+1]-b[j])/d);}a[n+1]=a[1];b[n+1]=b[1];}getch();closegraph();}。