• 大小: 24KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: 3D  图形  实心渲染  

资源简介

3D图形库实心渲染源代码 平底三角形 平顶三角形 任意三角形 物体实心渲染

资源截图

代码片段和文件信息

// 头文件
#include 
#include 

#include “CPPYIN.3DLib.h“
#include “CPPYIN.Math.h“
using namespace _CPPYIN_3DLib;
using namespace _CPPYIN_Math;

// 宏定义
#define WINDOW_CLASS_NAME TEXT(“CPPYIN3DWNDCLS“)
#define WINDOW_title TEXT(“CPPYIN3DCONSOLE“)
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
#define SCREEN_BPP 32
#define WAIT_TIME 30

// 全局变量定义
HWND g_WindowHandle;
HINSTANCE g_HInstance;
DWORD g_Clock;

POINT4D g_VertexList[4];
POLY g_Poly[4];
object g_Obj;
CAMERA g_Camera;
int g_ObjRatationAngelZ = 0;

// 宏脚本
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

// 函数定义
DWORD GetClock()
{
return GetTickCount(); 
}

void StartClock()
{
g_Clock = GetClock();
}

void WaitClock()
{
while((GetClock() - g_Clock) < WAIT_TIME)
{
Sleep(5);
}
}

int Game_Init()
{
Init3DLib(g_HInstance g_WindowHandle SCREEN_WIDTH SCREEN_HEIGHT);
InitSinCosTable();

// 设置局部坐标
POINT4D v1 = { 0 1 0 1 };
POINT4D v2 = { -1 -1 0 1 };
POINT4D v3 = { 1 -1 0 1 };
POINT4D v4 = { 0 0 2 1 };
g_VertexList[0] = v1;
g_VertexList[1] = v2;
g_VertexList[2] = v3;
g_VertexList[3] = v4;

g_Poly[0].VertexList = g_VertexList;
g_Poly[0].VertexIndexs[0] = 0;
g_Poly[0].VertexIndexs[1] = 2;
g_Poly[0].VertexIndexs[2] = 1;
g_Poly[0].State = POLY_STATE_ACTIVE;
g_Poly[0].Color = ARGB(025500);

g_Poly[1].VertexList = g_VertexList;
g_Poly[1].VertexIndexs[0] = 3;
g_Poly[1].VertexIndexs[1] = 1;
g_Poly[1].VertexIndexs[2] = 2;
g_Poly[1].State = POLY_STATE_ACTIVE;
g_Poly[1].Color = ARGB(002550);

g_Poly[2].VertexList = g_VertexList;
g_Poly[2].VertexIndexs[0] = 0;
g_Poly[2].VertexIndexs[1] = 3;
g_Poly[2].VertexIndexs[2] = 2;
g_Poly[2].State = POLY_STATE_ACTIVE;
g_Poly[2].Color = ARGB(000255);

g_Poly[3].VertexList = g_VertexList;
g_Poly[3].VertexIndexs[0] = 0;
g_Poly[3].VertexIndexs[1] = 1;
g_Poly[3].VertexIndexs[2] = 3;
g_Poly[3].State = POLY_STATE_ACTIVE;
g_Poly[3].Color = ARGB(02552550);

// 设置物体属性
g_Obj.PolyCount = 4;
g_Obj.PolyList[0] = g_Poly[0];
g_Obj.PolyList[1] = g_Poly[1];
g_Obj.PolyList[2] = g_Poly[2];
g_Obj.PolyList[3] = g_Poly[3];
g_Obj.VertexCount = 4;
g_Obj.VertexListLocal[0] = g_VertexList[0];
g_Obj.VertexListLocal[1] = g_VertexList[1];
g_Obj.VertexListLocal[2] = g_VertexList[2];
g_Obj.VertexListLocal[3] = g_VertexList[3];
POINT4D wp = { 0 0 5 1 };
g_Obj.WorldPos = wp;

// 设置相机
VECTOR4D cwp = { 5 0 6 1 };
VECTOR4D cdir = { 0 0 0 1 };
POINT4D ctarget = { 0 0 5 1 };
VECTOR4D cv = { 0 0 1 1 };
CameraCreate(&g_Camera CAMERA_TYPE_UVN &cwp &cdir &ctarget &cv 0 5 50 90 SCREEN_WIDTH SCREEN_HEIGHT);
CameraUpdateMatrix(&g_Camera);
// 缓存透视和屏幕变换矩阵
// 透视变换矩阵
BuildProjectMatrix(&g_Camera &g_Camera.MatrixProjection);
// 屏幕变换矩阵
BuildScreenMatrix(&g_Camera &g_Cam

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6430  2011-02-26 12:34  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.cpp

     文件       4677  2011-02-01 23:04  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj

     文件       1788  2011-02-01 23:04  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj.filters

     文件        143  2011-02-01 15:44  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj.user

     文件      26050  2011-02-27 09:09  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DLib.cpp

     文件       6163  2011-02-26 12:55  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DLib.h

     文件         29  2011-02-01 23:04  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Diagnosis.cpp

     文件        103  2011-02-03 13:49  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Diagnosis.h

     文件         26  2011-02-01 23:04  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Helper.cpp

     文件         94  2011-02-03 13:49  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Helper.h

     文件      18762  2011-02-22 18:44  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Math.cpp

     文件      10796  2011-02-22 18:43  CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Math.h

     文件        915  2011-02-01 15:44  CPPYIN.3DConsole\CPPYIN.3DConsole.sln

    ..A..H.     19968  2011-03-08 20:09  CPPYIN.3DConsole\CPPYIN.3DConsole.suo

     目录          0  2011-03-08 20:10  CPPYIN.3DConsole\CPPYIN.3DConsole

     目录          0  2011-03-08 20:10  CPPYIN.3DConsole

----------- ---------  ---------- -----  ----

                95944                    16


评论

共有 条评论