c语言利用参数方程绘图,CG实验1-利用C语言图形函数绘图概要1.doc

CG实验1-利用C语言图形函数绘图概要1

实验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()

{

int i,j,r,xx[21],yy[21],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;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()

{

int i,j,r,xx[20],yy[20],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;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-2.cpp的代码,将绘图窗口尺寸置为1024*768,背景色为黄色,前景色为红色,在实验报告中给出完整的代码和对应的运行结果截图

#include

#include

main()

{

int i,j,r,xx[20],yy[20],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;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.cpp的代码,改变顶点个数,使得得到的图形更逼近于正圆,在实验报告中给出完整的代码和对应的运行结果截图

#include

#include

main()

{

int i,j,r,xx[51],yy[51],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;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()

{

int i,j,r,xx[

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值