📄 gmath.h
字号:
//--------------------------------------------------
// Desc: 数学库
// Date: 2007.3.9 /update
// Author: artsylee
//
// Copyright (C) 2007 artsylee
//
//--------------------------------------------------
#ifndef _GMATH_
#define _GMATH_
#include <d3d9.h>
#include <d3dx9.h>
#define PERPENDICULAR 0
#define SHARP_ANGLE 1
#define OBTUSE_ANGLE 2
//--------------------------------------------------
// 求向量的模
// D3DXVec3Length
float VectorLength(D3DXVECTOR3 vec);
float VectorLength(D3DXVECTOR3 vec1, D3DXVECTOR3 vec2);
// 求两个向量的和
// D3DXVec3Add
D3DXVECTOR3 VectorAdd(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
// 求两个向量的差
// D3DXVec3Subtract
D3DXVECTOR3 VectorSubtract(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
// 求两个向量的叉乘
// D3DXVec3Cross
D3DXVECTOR3 VectorCross(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
// 求两个向量的点积
// D3DXVec3Dot
float VectorDot(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
// 求两个向量对应分量相乘
D3DXVECTOR3 Vec3Mutiply(D3DXVECTOR3 &v1, D3DXVECTOR3 &v2);
//--------------------------------------------------
//--------------------------------------------------
// 取得两个向量(或三个点)的夹角的cos
float VectorAngleCosine(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
float VectorAngleCosine(D3DXVECTOR3 v1, D3DXVECTOR3 center, D3DXVECTOR3 v2);
// 两个向量(或三个点)的夹角关系
int VectorAngleClassify(D3DXVECTOR3 v1, D3DXVECTOR3 v2);
int VectorAngleClassify(D3DXVECTOR3 v1, D3DXVECTOR3 center, D3DXVECTOR3 v2);
//--------------------------------------------------
//--------------------------------------------------
// 取得三个点的法线向量(顺时针传入)
D3DXVECTOR3 GetNormal(D3DXVECTOR3 v1, D3DXVECTOR3 v2, D3DXVECTOR3 v3);
D3DXVECTOR3 GetNormal(float *v1,float *v2,float *v3);
//--------------------------------------------------
//--------------------------------------------------
// 归一化
// D3DXVec3Normalize
D3DXVECTOR3 Normalization(float x, float y, float z);
D3DXVECTOR3 Normalization(D3DXVECTOR3 vertex);
//--------------------------------------------------
#endif // _GMATH_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -