声明:因网易博客将关闭,移到此
/**
这里使用到的是opengl 和 glut 进行编写学习的笔记,一个简单的出口
使用到的开发库有 linux (gl glu glut) windows(opengl32.lib glu32.lib glut32.lib)
实现:
绘制二次曲面
例子:
二次曲面这里都是用的glu库内部的函数,(要自己写,没试过,想写写看?
那就自己来吧^_^)
过程
1.GLUquadricObj *quadratic; // 创建一个二次曲面使用的对象
2.gluSphere(二次曲面对象,半径,横向分割数,纵向分割数);
3.如果要绘制中使用要记得创建了要删除哦^_^
要让二次曲面使用纹理需要进行gluQuadricTexture(二次曲面对象,GL_TRUE)
问题:
1.要绘制其他形状怎么办呢?
glu提供了一些形状,但是还是很有限,如果比较复杂的东西的话,就要自己来了
2.要绘制线条呢?
查查glu中的文档,应该可以发现
3.。。。。其他的???暂时没想到 ^_^
*/
#include <iostream>
#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h>
#ifdef _MSC_VER
#endif
#ifdef __GNUC__
#include <unistd.h>
#endif
using namespace std;
// 图片的类型 包含宽 高 数据
struct Image
{
unsigned long sizeX;
unsigned long sizeY;
char *data;
};
typedef struct Image Image;
// 我们用来旋转下模型吧
float g_angle = 0;
GLuint g_Texture;
GLuint g_object = 0;
GLUquadricObj *quadratic; // 存储二次曲面对象
////////////////////////////////
// 下面是读取自定义格式的模型信息文件使用的函数
//----------------------------------------------------------
// 读取图片文件
int ImageLoad(const char *filename, Image *image)
{
FILE *file;
unsigned long size; // 图片长度
unsigned long i; // 计数
unsigned short int planes;
unsigned short int bpp;
char temp; // bgr -rgb 变换
if ((file = fopen(filename, "rb")) == NULL)
{
prin