用ege图形库画五角星

来源:互联网 发布:淘宝刷流量工作室 编辑:程序博客网 时间:2024/05/16 23:52

本文用ege图形库画一个五角星。部分代码参考ege图形库中的demo。附上ege网站http://xege.org/

EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在。


#include <ege.h>
#include <time.h>
#include <math.h>

void paintstar(double x,double y,double r,int mod=0);


int main()
{
    ege::initgraph( 400, 400 );
    ege::setcolor( RGB(0xff, 0xff, 0xff) );
    ege::setfillcolor( RGB(0, 0, 0xff) );
    ege::setrendermode(ege::RENDER_MANUAL);

ege::circle(ege::getwidth()/2,ege::getheight()/2,ege::getheight()/2);//画圆圈 

paintstar(ege::getwidth()/2,ege::getheight()/2,ege::getheight()/2,0);//画实心五角星 

//paintstar(ege::getwidth()/2,ege::getheight()/2,ege::getheight()/2,1);//空心五角星 

ege::line(ege::getwidth()/2,ege::getheight()/2,0,ege::getheight()/2);

ege::getch();

    return 0;
}


void paintstar(double x,double y,double r,int mod) //x,y,为五角星外接圆圆心坐标,r 为外接圆半径,mod为 五角星样式 
{
switch(mod)
{
case 0: //实心五角星 
{
int pt[20];
double r0=r*cos(ege::PI*2/5)/cos(ege::PI*1/5);//r0是五角星任意两点间都有连线时形成的五边形外接圆的半径 
for(int n=0;n<5;++n)
{
pt[n*4]=(int)(-cos(ege::PI*2/5*n)*r+x);// 五角星各外顶点的横坐标 
pt[n*4+1]=(int)(sin(ege::PI*2/5*n)*r+y);// 五角星各外顶点的纵坐标 
pt[n*4+2]=(int)(-cos(ege::PI*2/5*n+ege::PI*1/5)*r0+x);// 五角星内五边形各顶点的横坐标 
pt[n*4+3]=(int)(sin(ege::PI*2/5*n+ege::PI*1/5)*r0+y);// 五角星内五边形各顶点的纵坐标 
}
ege::fillpoly(10,pt);
}
break;
case 1: //空心五角星 
{
int pt[10];
for(int n=0;n<5;++n)
{
pt[n*2]=(int)(-cos(ege::PI*4/5*n)*r+x);//各顶点横坐标 
pt[n*2+1]=(int)(sin(ege::PI*4/5*n)*r+y);//各顶点纵坐标 
}
ege::fillpoly(5,pt);
}
break;
default:
break;
}
}


实心五角星



空心五角星


0 0
原创粉丝点击