资源简介
在C++环境下使用Opengl实现圆锥和圆锥的绘制,有静态上点白色光源,使用方向键控制旋转,点击鼠标右键实现圆锥和圆柱间的转换。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
#define PI 3.14159f
#define RADIUS 50.0f
#define BITMAP_ID 0x4D42 // the universal bitmap ID
////// Texture Information
BITMAPINFOHEADER bitmapInfoHeader; // bitmap info header
unsigned char* bitmapData; // the texture data
unsigned int texture; // the texture object
bool flags = true;
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;
void SpecialKeys(int key int x int y);
void ChangeSize( GLsizei w GLsizei h );
void SetupRC();
// LoadBitmapFile
// desc: Returns a pointer to the bitmap image of the bitmap specified
// by filename. Also returns the bitmap header information.
// No support for 8-bit bitmaps.
unsigned char *LoadBitmapFile(char *filename BITMAPINFOHEADER *bitmapInfoHeader)
{
FILE *filePtr; // the file pointer
BITMAPFILEHEADER bitmapFileHeader; // bitmap file header
unsigned char *bitmapImage; // bitmap image data
int imageIdx = 0; // image index counter
unsigned char tempRGB; // swap variable
// open filename in “read binary“ mode
filePtr = fopen(filename “rb“);
if (filePtr == NULL)
return NULL;
// read the bitmap file header
fread(&bitmapFileHeader sizeof(BITMAPFILEHEADER) 1 filePtr);
// verify that this is a bitmap by checking for the universal bitmap id
if (bitmapFileHeader.bfType != BITMAP_ID)
{
fclose(filePtr);
return NULL;
}
// read the bitmap information header
fread(bitmapInfoHeader sizeof(BITMAPINFOHEADER) 1 filePtr);
// move file pointer to beginning of bitmap data
fseek(filePtr bitmapFileHeader.bfOffBits SEEK_SET);
// allocate enough memory for the bitmap image data
bitmapImage = (unsigned char*)malloc(bitmapInfoHeader->biSizeImage);
// verify memory allocation
if (!bitmapImage)
{
free(bitmapImage);
fclose(filePtr);
return NULL;
}
// read in the bitmap image data
fread(bitmapImage 1 bitmapInfoHeader->biSizeImage filePtr);
// make sure bitmap image data was read
if (bitmapImage == NULL)
{
fclose(filePtr);
return NULL;
}
// swap the R and B values to get RGB since the bitmap color format is in BGR
for (imageIdx = 0; imageIdx < bitmapInfoHeader->biSizeImage; imageIdx+=3)
{
tempRGB = bitmapImage[imageIdx];
bitmapImage[imageIdx] = bitmapImage[imageIdx + 2];
bitmapImage[imageIdx + 2] = tempRGB;
}
// close the file and return the bitmap image data
fclose(filePtr);
return bitmapImage;
}
//定义光源
//光源结构
typedef struct tag_lightingStruct {
GLfloat ambient[4];
GLfloat diffuse[4];
GLfloat specular[4];
} lightingStruct;
lightingStruct coloredLighting = {{0.0 1.0 1.0 1.0} {1.0 1.0 1.0 1.0} {0.0 0.0 0.0 0.0}};
lightingStruct *currentLighting;
//光源位置
GLfloat light0_pos[] = {0.0 80.0 0.01.0};
//绘制圆锥
void Cone()
{
float texLeft; // left texture coordinate
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 38912 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.exe
文件 427628 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.ilk
文件 633856 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.pdb
文件 46465024 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\ipch\使用opengl绘制圆柱和圆锥-5013c5b6\使用opengl绘制圆柱和圆锥-df36b874.ipch
文件 722 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\cl.command.1.tlog
文件 15028 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\CL.read.1.tlog
文件 422 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\CL.write.1.tlog
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 2 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 1644 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 3322 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 888 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\li
文件 450 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\mt.command.1.tlog
文件 446 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\mt.read.1.tlog
文件 378 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\mt.write.1.tlog
文件 640 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\rc.command.1.tlog
文件 350 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\rc.read.1.tlog
文件 358 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\rc.write.1.tlog
文件 510976 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\vc100.idb
文件 282624 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\vc100.pdb
文件 406 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.exe.em
文件 472 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.exe.em
文件 381 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.exe.intermediate.manifest
文件 77 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.lastbuildstate
文件 4491 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥.log
文件 220 2011-11-08 17:16 使用OpenGL绘制圆柱和圆锥\使用OpenGL绘制圆柱和圆锥\Debug\使用OpenGL绘制圆柱和圆锥_manifest.rc
............此处省略17个文件信息
相关资源
- Installshield for VC++ 6.0
- Essential C++ 中文版+英文版 侯捷译.ra
- VC++指纹识别算法源代码+说明文档
- 手势指尖检测算法c++实现
- Accelerated C++(中文版)
- C语言的窗口式图形界面案例
- VC++MFC编程源代码
- C++ bulider 教程
- Visual.C++.MFC扩展编程.zip
- C++ 网络爬虫代码
- 基于MFC的扫雷小游戏c++.rar
- c++实现图像扭曲、球面化灯变形
- 史上最全C++代码
- More Exceptional C++中文版高清完整.pdf
- 华为C&C++语言安全编程规范_V3.1.pdf
- essential c++ 中文版 侯捷 PDF
- 用C++mfc做的一系列小游戏
- Qt实现的迷宫与魔塔游戏 源码迷宫模
- C++课程设计,高校人员信息管理系统
- Visual C++代码 获取本地网络信息
- 基于C++的银行家算法模拟实现
- 相对定向 摄影测量 C++完整能运行代码
- opencv+c++实现人脸识别
- 免费:C++ Primer Plus 6th Edition英文版p
- 伐木工控制台小游戏源码VS2015 C++
- 传智扫地僧王保明 讲义
- MFC+文档图书管理系统C++
- 图书管理系统软件设计C++源码
- C++11实现多线程电梯运行
- C++ 进程内存搜索,特征码极速定位,
评论
共有 条评论