hi there!
what’s wrong with my code
i can’t see my expected resault it only shows a little weird shape on screen!
i wanna see a nerd hexagons
#include<glut.h>
GLfloat v[6][2]={{0.25,0.5},{0.75,0.0},{0.25,-0.5},{-0.25,-0.5},{-0.75,0.0},{-0.25,0.5}};
int n;
void motavazi(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d,GLfloat *e,GLfloat *f )
{
//glColor3f(0.0,0.0,0.0);
glVertex2fv(a);
//glColor3f(0.0,0.0,0.0);
glVertex2fv(b);
//glColor3f(0.0,0.0,0.0);
glVertex2fv(c);
//glColor3f(0.0,0.0,0.0);
glVertex2fv(d);
//glColor3f(0.0,0.0,0.0);
glVertex2fv(e);
//glColor3f(0.0,0.0,0.0);
glVertex2fv(f);
}
void divide_motavazi(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d,GLfloat *e,GLfloat *f,int m)
{
GLfloat v0[2],v1[2],v2[2],v3[2],v4[2],v5[2];
int j;
if(m>0)
{
for(j=0;j<2;j++)
v0[j]=(a[j]+b[j])/2;
for(j=0;j<2;j++)
v1[j]=(b[j]+d[j])/2;
for(j=0;j<2;j++)
v2[j]=(f[j]+d[j])/2;
for(j=0;j<2;j++)
v3[j]=(f[j]+e[j])/2;
for(j=0;j<2;j++)
v4[j]=(e[j]+c[j])/2;
for(j=0;j<2;j++)
v5[j]=(a[j]+c[j])/2;
divide_motavazi(v0,v1,v2,v3,v4,v5,m-1);
}
else
motavazi(a,b,c,d,e,f);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
//motavaziazla
glBegin(GL_POLYGON);
divide_motavazi(v[0],v[1],v[2],v[3],v[4],v[5],n);
glEnd();
glFlush();
}
void init()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-3.0,3.0,-3.0,3.0);
glMatrixMode (GL_MODELVIEW);
glClearColor(1.0,1.0,1.0,1.0);//range pas zamine window
glColor3f(0.0,0.0,0.0);//fill/draw with white
//glShadeModel(GL_SMOOTH);
//glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
//glPolygonMode(GL_FRONT,GL_LINE);
}
int main()
{
n=4;;
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
//glutInitWindowPosition(0,0);
glutCreateWindow("2D Gasket");
glutDisplayFunc(display);
init();
glutMainLoop();
}