• 大小: 53.25MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-12-20
  • 语言: 其他
  • 标签: 天津大学  

资源简介

天津大学的实时图形设计课的大作业,包括一份实验报告和代码,需在visual studio 2010下运行

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include “3ds.h“
#include
using namespace std;

//-------------------------------------------------------
// generic stuff
//-------------------------------------------------------

#define SEEK_START           1900
#define SEEK_CURSOR          1901
             
#define MAIN3DS             0x4D4D
#define EDIT3DS             0x3D3D  // this is the start of the editor config
#define EDIT_MATERIAL       0xAFFF
#define EDIT_object         0x4000
#define OBJ_TRIMESH         0x4100
#define OBJ_LIGHT           0x4600
#define OBJ_CAMERA          0x4700
#define LIT_OFF             0x4620
#define LIT_SPOT            0x4610
#define TRI_VERTEXLIST      0x4110
#define TRI_VERTEXOPTIONS   0x4111
#define TRI_FACELIST        0x4120
#define TRI_FACEMAPPING     0x4140
#define TRI_MATRIX          0x4160
#define RGB_COLOR           0x0010
#define COLOR24             0x0011
#define SPOTLIGHT           0x4610


struct LChunk
{
    short id;
    int start;
    int end;
};

LVector3 AddVectors(const LVector3 a const LVector3 b)
{
    LVector3 t;
    t.x = a.x+b.x;
    t.y = a.y+b.y;
    t.z = a.z+b.z;
    return t;
}

LVector3 SubtractVectors(const LVector3 a const LVector3 b)
{
    LVector3 t;
    t.x = a.x-b.x;
    t.y = a.y-b.y;
    t.z = a.z-b.z;
    return t;
}

float VectorLength(const LVector3 vec)
{
    return (float)sqrt(vec.x*vec.x + vec.y*vec.y+vec.z*vec.z);
}

LVector3 NormalizeVector(const LVector3 vec)
{
    float a = VectorLength(vec);
    if (a == 0)
        return vec;
    LVector3 v;
    v.x = vec.x/a;
    v.y = vec.y/a;
    v.z = vec.z/a;
    return v;
}

LVector3 CrossProduct(const LVector3 a const LVector3 b)
{
    LVector3 v;
    v.x = a.y*b.z - a.z*b.y;
    v.y = a.z*b.x - a.x*b.z;
    v.z = a.x*b.y - a.y*b.x;
    return v;
}

void LoadIdentityMatrix(LMatrix &m)
{
    m.xAxis.x = 1.0f;
    m.xAxis.y = 0.0f;
    m.xAxis.z = 0.0f;

    m.yAxis.x = 0.0f;
    m.yAxis.y = 1.0f;
    m.yAxis.z = 0.0f;

    m.zAxis.x = 0.0f;
    m.zAxis.y = 0.0f;
    m.zAxis.z = 1.0f;

    m.pos.x = 0.0f;
    m.pos.y = 0.0f;
    m.pos.z = 0.0f;
}

LVector3 VectorByMatrix(const LMatrix m const LVector3 vec)
{
    LVector3 res;
    res.x = m.xAxis.x*vec.x + m.xAxis.y*vec.y + m.xAxis.z*vec.z;
    res.y = m.yAxis.x*vec.x + m.yAxis.y*vec.y + m.yAxis.z*vec.z;
    res.z = m.zAxis.x*vec.x + m.zAxis.y*vec.y + m.zAxis.z*vec.z;
    res = AddVectors(vec m.pos);
    return res;
}

//-------------------------------------------------------
// Lobject implementation
//-------------------------------------------------------

Lobject::Lobject()
{
    m_name = 0;
    m_nameSize = 0;
}

Lobject::~Lobject()
{
    if (m_name != 0)
        free(m_name);
}

void Lobject::SetName(const char *value)
{
    m_nameSize = strlen(value)+1;
    m_name = (char*)malloc(m_nameSize);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-07-02 09:32  瀹炴椂鍥惧舰璁捐\
     文件        8196  2017-07-02 09:36  瀹炴椂鍥惧舰璁捐\.DS_Store
     目录           0  2017-07-02 09:36  __MACOSX\
     目录           0  2017-07-02 09:36  __MACOSX\瀹炴椂鍥惧舰璁捐\
     文件         120  2017-07-02 09:36  __MACOSX\瀹炴椂鍥惧舰璁捐\._.DS_Store
     目录           0  2017-07-02 09:36  瀹炴椂鍥惧舰璁捐\code\
     文件       14340  2017-07-02 09:36  瀹炴椂鍥惧舰璁捐\code\.DS_Store
     目录           0  2017-07-02 09:36  __MACOSX\瀹炴椂鍥惧舰璁捐\code\
     文件         120  2017-07-02 09:36  __MACOSX\瀹炴椂鍥惧舰璁捐\code\._.DS_Store
     文件       21819  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\3ds.cpp
     文件        5196  2017-06-03 22:32  瀹炴椂鍥惧舰璁捐\code\3ds.h
     目录           0  2017-06-04 16:12  瀹炴椂鍥惧舰璁捐\code\_UpgradeReport_Files\
     文件        3348  2016-05-29 15:59  瀹炴椂鍥惧舰璁捐\code\_UpgradeReport_Files\UpgradeReport.css
     文件       12505  2010-05-04 01:19  瀹炴椂鍥惧舰璁捐\code\_UpgradeReport_Files\UpgradeReport.xslt
     文件          69  2016-05-29 15:59  瀹炴椂鍥惧舰璁捐\code\_UpgradeReport_Files\UpgradeReport_Minus.gif
     文件          71  2016-05-29 15:59  瀹炴椂鍥惧舰璁捐\code\_UpgradeReport_Files\UpgradeReport_Plus.gif
     文件        1690  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\body.cpp
     文件        2450  2016-06-05 03:02  瀹炴椂鍥惧舰璁捐\code\body.h
     文件        8962  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\BoundingBox.cpp
     文件        1454  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\BoundingBox.h
     文件        7487  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\Camera.cpp
     文件        1600  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\Camera.h
     文件       21440  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\CLoad3DS.cpp
     文件        1352  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\CLoad3DS.h
     文件        4160  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\coordinate_frame.cpp
     文件        3522  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\coordinate_frame.h
     文件        4203  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\CPrerequisites.cpp
     文件        5052  2016-06-05 03:05  瀹炴椂鍥惧舰璁捐\code\CPrerequisites.h
     目录           0  2017-06-12 18:07  瀹炴椂鍥惧舰璁捐\code\Data\
     文件       10244  2017-07-02 09:35  瀹炴椂鍥惧舰璁捐\code\Data\.DS_Store
     目录           0  2017-07-02 09:36  __MACOSX\瀹炴椂鍥惧舰璁捐\code\Data\
............此处省略174个文件信息

评论

共有 条评论