Read-only archive. Login and posting are unavailable.

PDA

View Full Version : Help Lập trình c for Dos


JACKIECHUN
17-01-2010, 16:04
Ai biết vẽ lá cờ việt nam bằng thuật toán bresenham. Và tô màu thì giúp em với:adore: :*

huuhau
17-01-2010, 16:13
Ai biết vẽ lá cờ việt nam bằng thuật toán bresenham. Và tô màu thì giúp em với:adore: :*

Bresenham là thuật toán gì quên rồi? Lục lại đống bài cũ thì được hàm này. Bạn nghiên cứu xem, mình cũng quên ráo rồi. Chả biết sao code dc vậy nữa :D



#define RAD(goc) ((goc)*(M_PI/180.0))
//xc, yc là tâm ngôi sao, truyền dgoc vào để ngôi sao xoay được, colorentry là struct chứa 3 màu
void DrawStar(int xc, int yc, int R,int dgoc,colorentry c)
{
DrawCircle(xc,yc,R,c);
float a = RAD(90-72);
float r = R/3.0;//tan(RAD(36));
float dr[]= {R,r};
float da[]={a,a+M_PI/5};
glBegin(GL_LINE_LOOP);

glColor3ub(c.red,c.green,c.blue);
for(int j = 0 ;j < 5; j++)
for(int i = 0 ;i < 2 ; i++)
{
float x = xc + dr[i] * cos(da[i]+j*2*M_PI/5.0-RAD(dgoc));
float y = yc + dr[i] * sin(da[i]+j*2*M_PI/5.0-RAD(dgoc));
glVertex2d(x,y);
}

glEnd();
}
void FillStar(int xc, int yc, int R, colorentry c,int dgoc)
{
float a = RAD(54);
float r = R/3.0;//*tan(RAD(36));
float dr[]= {r,R};
float da[]={a,a+M_PI/5};
glBegin(GL_TRIANGLE_FAN);
{
glColor3ub(c.red,c.green,c.blue);
for(int j = 0 ;j < 5; j++)
for(int i = 0 ;i < 2 ; i++)
{
float x = xc + dr[i] * cos(da[i]+j*2*M_PI/5.0-RAD(dgoc));
float y = yc + dr[i] * sin(da[i]+j*2*M_PI/5.0-RAD(dgoc));
glVertex2d(x,y);
}
}
glEnd();

}

JACKIECHUN
17-01-2010, 17:01
Cảm ơn bạn. Nhung mình cần thuật toán bresham co cai này thì mình cũng có