• 大小: 2.24MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-14
  • 语言: C/C++
  • 标签: OpenGL  Visual  C++  三维  

资源简介

使用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个文件信息

评论

共有 条评论