资源简介
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
- 上一篇:clark等幅值变换的推导
- 下一篇:群星系列流明单片机的I2C写法
相关资源
- OSG 72集视频教程和资料140620
- 计算机图形学 边填充算法实现代码
- The Secret Path 3D 3D魔方迷宫[源码][scra
-
Actionsc
ript 1.0实现能跟随鼠标运动的 - 嵌入式图形界面MiniGUI的示例程序9例
- 计算机图形学课设 画板
- 加密cad图形的lisp文件
- Unity3D登录界面工程
- 3DWebGIS 3DWebGIS
- 一个比较完整的开源cad 图形程序
- 3des加解密_C 实现
- unity3d反编译工具
- c 图形面积计算 利用继承与多态
- vc利用MFC底层开发的二维GIS管理软件,
- 简单的交互式图形系统的实现
- 简易绘图程序(计算机图形学课程设
- 自编用openGL实现3D分形树,分形山
- Quest3D 2个动画相机切换实例
- 计算机图形学(openGL)代码
- 图形学集成程序dda、中点算法、多边
- 计算机图形实验(哈尔滨工程大学)
- Macromedia Fireworks V8.0 简体中文版
- OpenGL-3D坦克模拟
- 在delphi7下进行autocad二次开发的一个简
- 图像处理作业C 源代码
- 从EXCEL中取数据在Teechart7显示应用示例
- FLAC3D数值模拟的边坡稳定性
-
UnityWebPla
yerFull - Scratch:3d飞行模拟器 .sb3
- OPENGL实现世界上最小的3D游戏
评论
共有 条评论