CG实验1利用C语言图形函数绘图.docx

上传人:b****6 文档编号:4944537 上传时间:2022-12-12 格式:DOCX 页数:12 大小:197.67KB
下载 相关 举报
CG实验1利用C语言图形函数绘图.docx_第1页
第1页 / 共12页
CG实验1利用C语言图形函数绘图.docx_第2页
第2页 / 共12页
CG实验1利用C语言图形函数绘图.docx_第3页
第3页 / 共12页
CG实验1利用C语言图形函数绘图.docx_第4页
第4页 / 共12页
CG实验1利用C语言图形函数绘图.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

CG实验1利用C语言图形函数绘图.docx

《CG实验1利用C语言图形函数绘图.docx》由会员分享,可在线阅读,更多相关《CG实验1利用C语言图形函数绘图.docx(12页珍藏版)》请在冰豆网上搜索。

CG实验1利用C语言图形函数绘图.docx

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()函数画圆。

/*1-1.cpp*/

#include

#include

main()

{

inti,j,r,xx[21],yy[21],x0,y0;

floatst=360/20*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

for(i=0;i<21;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<20;i++)

line(xx[i],yy[i],xx[i+1],yy[i+1]);

getch();closegraph();

}_

例2画一个金刚石图案

程序1-2.cpp绘制图1-1所示的金刚石图案。

#include

#include

main()

{

inti,j,r,xx[20],yy[20],x0,y0;

floatst=360/20*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

for(i=0;i<20;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<20;i++)

{

for(j=0;j<20;j++)line(xx[i],yy[i],xx[j],yy[j]);

}

getch();closegraph();

}_

图1-1金刚石图案

具体实验要求:

(1)修改1-2.cpp的代码,将绘图窗口尺寸置为1024*768,背景色为黄色,前景色为红色,在实验报告中给出完整的代码和对应的运行结果截图

#include

#include

main()

{

inti,j,r,xx[20],yy[20],x0,y0;

floatst=360/20*3.14/180;

x0=300;y0=250;r=200;

initgraph(1024,768);

setbkcolor(YELLOW);setcolor(RED);

for(i=0;i<20;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<20;i++)

{

for(j=0;j<20;j++)line(xx[i],yy[i],xx[j],yy[j]);

}

getch();closegraph();

}_

(2)修改1-1.cpp的代码,改变顶点个数,使得得到的图形更逼近于正圆,在实验报告中给出完整的代码和对应的运行结果截图

#include

#include

main()

{

inti,j,r,xx[51],yy[51],x0,y0;

floatst=360.0/50*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

for(i=0;i<51;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<50;i++)

line(xx[i],yy[i],xx[i+1],yy[i+1]);

getch();closegraph();

}

(3)自行编程实现图1-2的绘制。

(提示:

求圆的各分点坐标,利用line()函数从圆的最低点向各分点绘直线。

#include

#include

main()

{

inti,j,r,xx[21],yy[21],x0,y0;

floatst=360/20*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

for(i=0;i<21;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<20;i++)

line(xx[i],yy[i],xx[i+1],yy[i+1]);

for(i=0;i<20;i++)

line(xx[15],yy[15],xx[i],yy[i]);

getch();closegraph();

}

图1-2

(4)将背景色置成白色,前景色置成黑色,绘制一个正五边形图形

#include

#include

main()

{

inti,j,r,xx[6],yy[6],x0,y0;

floatst=360/5*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(WHITE);setcolor(BLACK);

for(i=0;i<6;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<5;i++)

line(xx[i],yy[i],xx[i+1],yy[i+1]);

getch();closegraph();

}

绘制一个五角星图形

#include

#include

main()

{

inti,j,r,xx[6],yy[6],x0,y0;

floatst=360/5*3.14/180;

x0=300;y0=250;r=200;

initgraph(800,600);

setbkcolor(WHITE);setcolor(BLACK);

for(i=0;i<6;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

line(xx[1],yy[1],xx[3],yy[3]);

line(xx[3],yy[3],xx[5],yy[5]);

line(xx[5],yy[5],xx[2],yy[2]);

line(xx[2],yy[2],xx[4],yy[4]);

line(xx[4],yy[4],xx[1],yy[1]);

getch();closegraph();

}

(5)绘制如图1-3所示指定图形

#include

#include

main()

{

inti,j,r,xx[21],yy[21],x0,y0;

intr1,xx1[21],yy1[21];

floatst=360/20*3.14/180;

x0=300;y0=250;r=200;r1=100;

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

for(i=0;i<21;i++)

{xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st);}

for(i=0;i<21;i++)

{xx1[i]=x0+r1*cos(i*st);yy1[i]=y0-r1*sin(i*st);}

for(i=0;i<20;i++)

line(xx[i],yy[i],xx1[i+1],yy1[i+1]);

getch();closegraph();

}

图1-3

4思考与总结

通过实验掌握到了不少计算机图形学的知识。

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

当前位置:首页 > 高等教育 > 军事

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

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