OpenGL学习笔记(序)

OpenGL学习笔记(序)

        扯淡的项目,没有办法,喝了老师的酒,只好硬着头皮上。
因为之前一直在搞java,突然跳到C++,我还真的不行,再加上又是需要用到MFC,VC,这些东西我想光会就至少的半年,怎么办呢?硬着头皮上!

        不过说实在的,学了一点C++,倒是对Java以前很多不是很明白的地方有点领悟的感觉;),比如一直没有明白Java里:调用构造函数分配空间的时候,秘密传一个This给构造函数。这句话什么意思?看了C++后明白了,原来This是作为一个空白空间的地址传过去的啦!每个对象都要有唯一的标致符,是什么?当然是对象的地址啦!,废话少讲,开始OpenGL序言。
先我们给出一个使用 OpenGL API 直接写的 MFC Console 程序,使用的是辅助库函数,因此比较简单,我们只介绍下代码,以后的写法不会使用这种控制台程序的方式,而是使用 MFC SDI
首先需要在 Settings/Project Settings/Link/[Object/Library Module] 中键入: opengl32.lib glu32.lib glaux.lib ,以引入 OpenGL 的函数库:
// CConGL.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#pragma warning(disable : 4305)
#include <windows.h>
 
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glaux.h>
 
void myInit(void);
void CALLBACK myReshape(GLsizei w,GLsizei h);
void CALLBACK myDisplay(void);
 
void myInit()
{
      // 清除背景颜色
      glClearColor(0.0,0.0,0.0,0.0);
      // 图形绘制模式
      glShadeModel(GL_FLAT);
}
 
void CALLBACK myReshape(GLsizei w,GLsizei h)
{
      // 窗口改变时视口变化
      glViewport(0,0,w,h);
}
 
void CALLBACK myDisplay(void)
{
      glClear(GL_COLOR_BUFFER_BIT);
      // 图形绘制颜色
      glColor4f(0.2,0.6,1.0,1.0);
      // 设置旋转
      glRotatef(60.0,1.0,1.0,1.0);
      // 绘制图形
      auxWireSphere(1.0);
      // 绘制完成
      glFlush();
}
int main(int argc, char* argv[])
{
      // 初始化显示模式
      auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
      auxInitPosition(0,0,400,400);
      auxInitWindow("first application");
      myInit();
      auxReshapeFunc(myReshape);
      auxMainLoop(myDisplay);
      return 0;
}
        拿去运行吧,哈哈,那你就等着出出一个莫名其妙的地球吧,说实在的,我到目前尚未理解那些语句的意思。
      

你可能感兴趣的:(OpenGL学习笔记(序))