gluOrtho2D与比例尺之间的关系-创新互联

说明

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了临漳免费建站欢迎大家使用!

     gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 0.0);第三个参数取其一半,打点的Y坐标扩大了一倍.渲染直线的情况下,通过将第二参数和第三参数进行按比例尺放缩,实际上,可达到渲染图形缩放的效果。所以gluOrtho2D函数定义了屏幕坐标多少个单位像素表示投影矩阵的单位一

代码

#include

#include

#define WINDOWHEIGHT 480

#define WINDOWWIDTH  800

void myInit()

{

 glClearColor(1.0,1.0,1.0,0.0);

 glLineWidth(3.0);

 glMatrixMode(GL_PROJECTION);

 glLoadIdentity();

 //gluOrtho2D(0.0, WINDOWWIDTH, 0.0, WINDOWHEIGHT);

 gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 0.0);

}

void myDisplay(void)

{

 glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glFlush();

}

void myMouse(int button,int state,int x,int y)

{

 if(state==GLUT_DOWN)

 {

  glPointSize(10);

   glBegin(GL_POINTS);

    glColor3f(1.0f, 0.0f, 0.0f);

    //glVertex2f(x, WINDOWHEIGHT-y);

    glVertex2f(x,  y);

   glEnd();

  glFlush();

 }

}

int main(int argc, char* argv[])

{

 glutInit(&argc, argv);

 glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);

 glutInitWindowSize(WINDOWWIDTH, WINDOWHEIGHT);

 glutInitWindowPosition(100,150);

 glutCreateWindow("OpenGL 窗口1");

 glutDisplayFunc(&myDisplay);

 glutMouseFunc(&myMouse);

 myInit();

 glutMainLoop();

 return 0;

}

代码2

#include

#include

#define WINDOWHEIGHT 480

#define WINDOWWIDTH  800

void myInit(int scale)

{

 glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glFlush();

 glMatrixMode(GL_PROJECTION);

 glLoadIdentity();

 gluOrtho2D(0.0, WINDOWWIDTH/scale , WINDOWHEIGHT/scale, 0.0);

}

void myDisplay(void)

{

 glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glFlush();

}

void myMouse(int button,int state,int x,int y)

{

 static int scale = 2;

 if(state==GLUT_DOWN)

 {

  myInit(scale);

  scale = scale + 2;

  glLineWidth(10);

   glBegin(GL_LINES);

    glColor3f(1.0f, 0.0f, 0.0f);

    glVertex2f(10,  10);

    glVertex2f(20,  20);

   glEnd();

  glFlush();

 }

}

int main(int argc, char* argv[])

{

 glutInit(&argc, argv);

 glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);

 glutInitWindowSize(WINDOWWIDTH, WINDOWHEIGHT);

 glutInitWindowPosition(100,150);

 glutCreateWindow("OpenGL 窗口1");

 glutDisplayFunc(&myDisplay);

 glutMouseFunc(&myMouse);

 glutMainLoop();

 return 0;

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:gluOrtho2D与比例尺之间的关系-创新互联
网站路径:http://cdiso.cn/article/diojss.html

其他资讯