资源简介
使用OpenGL实现多个小球在密闭空间内的碰撞反弹三维场景,编程基于Visual C++
代码片段和文件信息
// Image.cpp: implementation of the CImage class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “MyCollision1.h“
#include “Image.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CImage::CImage()
{
}
CImage::~CImage()
{
}
unsigned int CImage::getint(FILE *fp)
{
int c c1 c2 c3;
// 获得4个字节
c = getc(fp);
c1 = getc(fp);
c2 = getc(fp);
c3 = getc(fp);
return ((unsigned int) c) +
(((unsigned int) c1) << 8) +
(((unsigned int) c2) << 16) +
(((unsigned int) c3) << 24);
}
unsigned int CImage::getshort(FILE *fp)
{
int c c1;
// 获得2个字节
c = getc(fp);
c1 = getc(fp);
return ((unsigned int) c) + (((unsigned int) c1) << 8);
}
int CImage::ImageLoad(char *filename Image *image)
{
FILE *file;
unsigned long size; // 图形的大小(字节数)
unsigned long i; // 标准计数器
unsigned short int planes; // 图形的平面数(必须为1)
unsigned short int bpp; // 每个像素的位数(必须为24)
char temp; // 临时的颜色保存
// 确保文件存在
if ((file = fopen(filename “rb“))==NULL) {
printf(“File Not Found : %s\n“filename);
return 0;
}
fseek(file 18 SEEK_CUR);
// 读宽度
image->sizeX = getint (file);
printf(“Width of %s: %lu\n“ filename image->sizeX);
// 读高度
image->sizeY = getint (file);
printf(“Height of %s: %lu\n“ filename image->sizeY);
// 计算图形的大小(假定每个像素为24位或3个字节)
size = image->sizeX * image->sizeY * 3;
planes = getshort(file);
if (planes != 1) {
printf(“Planes from %s is not 1: %u\n“ filename planes);
return 0;
}
bpp = getshort(file);
if (bpp != 24) {
printf(“Bpp from %s is not 24: %u\n“ filename bpp);
return 0;
}
fseek(file 24 SEEK_CUR);
// 读入数据
image->data = (char *) malloc(size);
if (image->data == NULL)
{
MessageBox(NULL“Error allocating memory for color-corrected image data“ “ERROR“MB_OK);
return 0;
}
if ((i = fread(image->data size 1 file)) != 1)
{
MessageBox(NULL“Error reading image data“ “ERROR“MB_OK);
return 0;
}
for (i=0;i {
temp = image->data[i];
image->data[i] = image->data[i+2];
image->data[i+2] = temp;
}
return 1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-10-17 20:47 MyCollision1\
目录 0 2011-07-25 03:51 MyCollision1\Data\
文件 49208 2005-10-19 15:33 MyCollision1\Data\Boden.bmp
文件 23584 2005-10-19 15:33 MyCollision1\Data\Explode.wav
文件 49208 2005-10-19 15:33 MyCollision1\Data\Marble.bmp
文件 12344 2005-10-19 15:33 MyCollision1\Data\Spark.bmp
文件 49208 2005-10-19 15:33 MyCollision1\Data\Wand.bmp
文件 2697 2005-10-19 15:33 MyCollision1\Image.cpp
文件 690 2005-10-19 15:33 MyCollision1\Image.h
文件 2513 2005-10-19 15:33 MyCollision1\MainFrm.cpp
文件 1581 2005-10-19 15:33 MyCollision1\MainFrm.h
文件 540 2005-10-19 15:33 MyCollision1\Mathex.h
文件 6387 2005-10-19 15:33 MyCollision1\Matrix33.cpp
文件 3094 2005-10-19 15:33 MyCollision1\Matrix33.h
文件 2376 2005-10-19 15:33 MyCollision1\MyCollision1.clw
文件 4317 2005-10-19 15:33 MyCollision1\MyCollision1.cpp
文件 5236 2005-10-19 15:33 MyCollision1\MyCollision1.dsp
文件 549 2005-10-19 15:33 MyCollision1\MyCollision1.dsw
文件 1416 2005-10-19 15:33 MyCollision1\MyCollision1.h
文件 74752 2014-10-17 20:47 MyCollision1\MyCollision1.ncb
文件 55808 2014-10-17 20:47 MyCollision1\MyCollision1.opt
文件 2226 2014-10-17 20:46 MyCollision1\MyCollision1.plg
文件 10615 2005-10-19 15:33 MyCollision1\MyCollision1.rc
文件 1862 2005-10-19 15:33 MyCollision1\MyCollision1Doc.cpp
文件 1535 2005-10-19 15:33 MyCollision1\MyCollision1Doc.h
文件 27593 2005-10-19 15:33 MyCollision1\MyCollision1View.cpp
文件 3608 2005-10-19 15:33 MyCollision1\MyCollision1View.h
文件 4453 2005-10-19 15:33 MyCollision1\ReadMe.txt
目录 0 2014-10-17 20:46 MyCollision1\Release\
目录 0 2011-07-25 03:51 MyCollision1\Release\Data\
文件 49208 2005-10-19 15:33 MyCollision1\Release\Data\Boden.bmp
............此处省略29个文件信息
相关资源
- C++面试题集锦非常详细
- 简单蚁群算法C++代码
- libstdc++.so.6.0.23_linux7
- libstdc++.so.6.0.23270146
- MFC宿舍管理系统C++含access数据库
- 基于C++和数据库SQL server开发的商品销
- VTK三维可视化读取RAW数据的c++源代码
- 完整的C/C++时序的B+树数据库系统实现
- Effective.Modern.C++中文版本
- Visual_assist_X_for_VC6.0破解版.rar
- VC++汉化包
- CNC雕刻机控制软件
- VC++2010 Express(含激活
- html tidy c++库
- Cocos2d-x C++版仿《王者之剑》实现(
- 使用C++来实现KNN算法
- 学生信息管理系统基于VC++6.0
- MFC课程设计VC++超市管理系统
- C++ VC++编写通讯录文件保存附报告
- C++程序设计实践教程 (马光志 着)
- c++超市管理系统 数据库作业
- Google-C++编码规范中文版最新整理PDF版
- 航班信息查询系统设计
- (VC++ 数字图像处理典型算法及实现源
- 利用openGL和C++实现光线跟踪绘图的完
- MFC 圆弧算法的实现
- c++读取EXCEL表
- AES 加密 C++源码
- C++MFC日程管理系统
- 百度地图二次开发汇总
评论
共有 条评论