用openGL实现用黑白相间的棋盘图案填充多边形

本文介绍了一个使用OpenGL和GLUT库实现的简单图形程序,该程序通过黑白相间的棋盘图案来填充一个多边形。代码展示了如何设置OpenGL环境、定义窗口大小和位置、初始化颜色以及绘制特定图案。
#include<gl/glut.h>
#include<windows.h> 
int n=0;  
float a0=200,b0=200,a1=400,b1=200,a2=400,b2=400,a3=200,b3=400; 
int winWidth=600,winHeight=500;

void Initial(void) 
{  
    glClearColor(1.0f,1.0f,1.0f,1.0f);  
} 

void ChangeSize(int w,int h)
{  winWidth=600,winHeight=550; 
    glViewport(0,0,w,h);  
    glMatrixMode(GL_PROJECTION);  
    glLoadIdentity();   
    gluOrtho2D(0.0,winWidth,0.0,winHeight); 
} 

void Display() 
{  
    glColor3f(0.0f,0.0f,0.0f);  
    GLubyte fly[]=  
    {   0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,   
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff, 
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
        0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,  
    };
    glEnable(GL_POLYGON_STIPPLE);  
    glPolygonStipple(fly);  
    glRectf(5,5,800,800);  
    glutSwapBuffers();  
}
int main(int argc,char *argv[]) 
{  glutInit(&argc,argv);
   glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
   glutInitWindowSize(400,300);
   glutInitWindowPosition(100,100);
   glutCreateWindow("用黑白相间的棋盘图案填充多边形");
   glutDisplayFunc(Display);
   glutReshapeFunc(ChangeSize);
   Initial();
   glutMainLoop();
   return 0;
}
View Code

 参考了别人的代码,刚接触这个东西,感觉函数名真多。。。尤其是vc++6.0没有智能感知,写的真累。

转载于:https://www.cnblogs.com/acm-jing/p/4403476.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值