1.计算机图形学 实验 线条(利用C语言图形函数绘图)

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

#include<graphics.h>

#include<math.h>

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();

}

(2)自行编程实现图1-2的绘制。(提示:求圆的各分点坐标,利用画直线函数从圆的最低点向各分点绘直线。)

#include<graphics.h>

#include<math.h>

main()

{

       int i,j,r,xx[25],yy[25],x0,y0;

       float st=360.0/25*3.14/180;

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

       initgraph(800,600);

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

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

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

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

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

getch();closegraph();

}

(3)绘制一个正五边形图形

#include<graphics.h>

#include<math.h>

main()

{

int i,j,r,xx[6],yy[6],x0,y0;

float st=360.0/5*3.14/180;

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

initgraph(800,600);

setbkcolor(BLUE);setcolor(YELLOW);

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

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

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

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

 getch();closegraph();

};

(4)绘制一个五角星图形(两种方法) 

#include<graphics.h>

#include<math.h>

main()

{

int i,j,r,xx[10],yy[10],x0,y0;

float st=360.0/10*3.14/180;

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

initgraph(800,600);

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

    {

        if(i%2==0)

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

        else

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

    }

    for(i=0;i<10;i++){

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

    }

 getch();closegraph();

}

2.第二种五角星

#include<graphics.h>

#include<math.h>

main()

{

int i,j,r,xx[5],yy[5],x0,y0;

float st=360.0/5*3.14/180;

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

initgraph(800,600);

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

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

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

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

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

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

     ​   line(xx[3],yy[3],xx[0],yy[0]);

​getch();closegraph();

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值