首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

如何没人理

2012-02-22 
怎么没人理?照着书本上写个小程序,就是画星星和月亮,本来想用一个半圆弧和一个椭园的圆弧的画月亮的,但是

怎么没人理?
照着书本上写个小程序,就是画星星和月亮,本来想用一个半圆弧和一个椭园的圆弧的画月亮的,但是不会画那个斜的椭园的圆弧,   这个函数ellipse(...   )   怎么画斜的呢?还有一个问题就是星星的消失,不要让星星全部消失,先随机消失一部分,再画出一部分。
#include <stdlib.h>
#include <graphics.h>
#include <stdio.h>
#define   N   300
struct   Star
{
int   x;
int   y;
int   color;
}star[N];
voidInit(   void   );
void   DrawStar(   void   );
voidDrawMoon(   void   );
voidClose(   void   );
voidmain(   void   )
{
Init();
DrawStar();
Close();
}
voidInit(   void   )
{
int   gd   =   DETECT   ,   gm;
initgraph(   &gd,   &gm   , "c:\\tc\\bgi "   );
cleardevice();
}
voidDrawStar(   void   )
{
int   i;
cleardevice();
while(   !   kbhit()   )
{
for(   i   =   0;   i   <   N;   i++   )
{
star[i].x   =   random(   600   );
star[i].y   =   random(   480   );
star[i].color   =   random(   13   )   +   1;
}
DrawMoon();
for(   i   =   0;   i   <   N;   i++   )
{
putpixel(   star[i].x   ,   star[i].y   ,star[i].color   );
delay(   50   );
}
for(   i   =   0;   i   <   N;   i++   )
{
putpixel(   star[i].x   ,   star[i].y   ,0   );
delay(   40   );
}
}
}
void   DrawMoon(   void   )
{
arc(   480,60,-45,135,25);
}
void   Close(   void   )
{
closegraph();
getch();
}


[解决办法]
BOOL Ellipse(
HDC hdc,
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect
);
[解决办法]
因为现在用TC 2.0的人很少了!所以大家都没有兴趣!
我真的想问问:楼主还在用 TC 2.0 开发程序吗?
[解决办法]
函数名: ellipse
功 能: 画一椭圆
用 法: void far ellipse(int x, int y, int stangle, int endangle,
int xradius, int yradius);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 0, endangle = 360;
int xradius = 100, yradius = 50;

/* initialize graphics, local variables */
initgraph(&gdriver, &gmode, " ");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk)
/* an error occurred */
{
printf( "Graphics error: %s\n ",
grapherrormsg(errorcode));
printf( "Press any key to halt: ");
getch();
exit(1);
/* terminate with an error code */
}

midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());

/* draw ellipse */
ellipse(midx, midy, stangle, endangle,
xradius, yradius);

/* clean up */
getch();
closegraph();
return 0;
}



热点排行