1、CG实验1利用C语言图形函数绘图实验1 利用C语言图形函数绘图1实验目的: 熟悉C语言图形功能,为今后实验打基础。 2实验要求:在CodeBlocks环境下编写程序3实验内容例1 利用line()函数画圆在计算机绘图中,任何曲线均可以利用line()函数绘制。下面通过绘制一个圆说明利用line()函数绘制曲线的方法。在圆上任取一点P(X,Y),以C点为圆心的圆的参数方程为在计算机绘图中,屏幕左上角为坐标原点,X坐标方向水平向右,Y坐标方向垂直向下。在该坐标下,设圆心C的坐标为(X0,Y0),则圆的参数方程变为:根据圆的参数方程,利用c语言编程绘制圆。程序1-1.cpp实现利用line()函数画
2、圆。/*1-1.cpp*/#include#includemain() int i,j,r,xx21,yy21,x0,y0; float st=360/20*3.14/180; x0=300;y0=250;r=200; initgraph(800,600); setbkcolor(BLUE);setcolor(YELLOW); for(i=0;i21;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i20;i+) line(xxi,yyi,xxi+1,yyi+1); getch();closegraph();_例2 画一个金刚石图案程序1-
3、2.cpp绘制图1-1所示的金刚石图案。#include#includemain() int i,j,r,xx20,yy20,x0,y0; float st=360/20*3.14/180; x0=300;y0=250;r=200; initgraph(800,600); setbkcolor(BLUE);setcolor(YELLOW); for(i=0;i20;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i20;i+) for(j=0;j20;j+)line(xxi,yyi,xxj,yyj); getch();closegraph(
4、);_图1-1金刚石图案具体实验要求:(1) 修改1-2.cpp的代码,将绘图窗口尺寸置为1024*768,背景色为黄色,前景色为红色,在实验报告中给出完整的代码和对应的运行结果截图#include#includemain() int i,j,r,xx20,yy20,x0,y0; float st=360/20*3.14/180; x0=300;y0=250;r=200; initgraph(1024,768); setbkcolor(YELLOW);setcolor(RED); for(i=0;i20;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); fo
5、r(i=0;i20;i+) for(j=0;j20;j+)line(xxi,yyi,xxj,yyj); getch();closegraph();_(2) 修改1-1.cpp的代码,改变顶点个数,使得得到的图形更逼近于正圆,在实验报告中给出完整的代码和对应的运行结果截图#include#includemain() int i,j,r,xx51,yy51,x0,y0; float st=360.0/50*3.14/180; x0=300;y0=250;r=200; initgraph(800,600); setbkcolor(BLUE);setcolor(YELLOW); for(i=0;i51
6、;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i50;i+) line(xxi,yyi,xxi+1,yyi+1); getch();closegraph();(3)自行编程实现图1-2的绘制。(提示:求圆的各分点坐标,利用line()函数从圆的最低点向各分点绘直线。)#include#includemain() int i,j,r,xx21,yy21,x0,y0; float st=360/20*3.14/180; x0=300;y0=250;r=200; initgraph(800,600); setbkcolor(BLUE);set
7、color(YELLOW); for(i=0;i21;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i20;i+) line(xxi,yyi,xxi+1,yyi+1); for(i=0;i20;i+) line(xx15,yy15,xxi,yyi); getch();closegraph();图1-2(4)将背景色置成白色,前景色置成黑色,绘制一个正五边形图形#include#includemain() int i,j,r,xx6,yy6,x0,y0; float st=360/5*3.14/180; x0=300;y0=250;r=20
8、0; initgraph(800,600); setbkcolor(WHITE);setcolor(BLACK); for(i=0;i6;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i5;i+) line(xxi,yyi,xxi+1,yyi+1); getch();closegraph();绘制一个五角星图形#include#includemain() int i,j,r,xx6,yy6,x0,y0; float st=360/5*3.14/180; x0=300;y0=250;r=200; initgraph(800,600); se
9、tbkcolor(WHITE);setcolor(BLACK); for(i=0;i6;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); line(xx1,yy1,xx3,yy3); line(xx3,yy3,xx5,yy5); line(xx5,yy5,xx2,yy2); line(xx2,yy2,xx4,yy4); line(xx4,yy4,xx1,yy1); getch();closegraph();(5)绘制如图1-3所示指定图形#include#includemain() int i,j,r,xx21,yy21,x0,y0; int r1,xx12
10、1,yy121; float st=360/20*3.14/180; x0=300;y0=250;r=200;r1=100; initgraph(800,600); setbkcolor(BLUE);setcolor(YELLOW); for(i=0;i21;i+) xxi=x0+r*cos(i*st);yyi=y0-r*sin(i*st); for(i=0;i21;i+) xx1i=x0+r1*cos(i*st);yy1i=y0-r1*sin(i*st); for(i=0;i20;i+) line(xxi,yyi,xx1i+1,yy1i+1); getch();closegraph();图1-34 思考与总结通过实验掌握到了不少计算机图形学的知识。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1