Feng.Li's Java See

抓紧时间,大步向前。
随笔 - 95, 文章 - 4, 评论 - 58, 引用 - 0
数据加载中……

OpenGL学习笔记(序)

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

        不过说实在的,学了一点C++,倒是对Java以前很多不是很明白的地方有点领悟的感觉;),比如一直没有明白Java里:调用构造函数分配空间的时候,秘密传一个This给构造函数。这句话什么意思?看了C++后明白了,原来This是作为一个空白空间的地址传过去的啦!每个对象都要有唯一的标致符,是什么?当然是对象的地址啦!,废话少讲,开始OpenGL序言。
先我们给出一个使用OpenGLAPI直接写的MFC Console程序,使用的是辅助库函数,因此比较简单,我们只介绍下代码,以后的写法不会使用这种控制台程序的方式,而是使用MFCSDI
首先需要在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;
}
        拿去运行吧,哈哈,那你就等着出出一个莫名其妙的地球吧,说实在的,我到目前尚未理解那些语句的意思。
      

posted on 2006-11-14 02:02 小锋 阅读(361) 评论(0)  编辑  收藏 所属分类: C


只有注册用户登录后才能发表评论。


网站导航: