DirectX学习——数学基础(1)
2015-10-16 13:32
239 查看
向量的基本运用:
创建3D向量:
向量间的运算:可以进行基本的运算,如头文件所述。
还有一些3D向量的函数
创建3D向量:
typedef struct D3DXVECTOR3 : public D3DVECTOR { public: D3DXVECTOR3() {}; D3DXVECTOR3( CONST FLOAT * ); D3DXVECTOR3( CONST D3DVECTOR& ); D3DXVECTOR3( CONST D3DXFLOAT16 * ); D3DXVECTOR3( FLOAT x, FLOAT y, FLOAT z ); // casting operator FLOAT* (); operator CONST FLOAT* () const; // assignment operators D3DXVECTOR3& operator += ( CONST D3DXVECTOR3& ); D3DXVECTOR3& operator -= ( CONST D3DXVECTOR3& ); D3DXVECTOR3& operator *= ( FLOAT ); D3DXVECTOR3& operator /= ( FLOAT ); // unary operators D3DXVECTOR3 operator + () const; D3DXVECTOR3 operator - () const; // binary operators D3DXVECTOR3 operator + ( CONST D3DXVECTOR3& ) const; D3DXVECTOR3 operator - ( CONST D3DXVECTOR3& ) const; D3DXVECTOR3 operator * ( FLOAT ) const; D3DXVECTOR3 operator / ( FLOAT ) const; friend D3DXVECTOR3 operator * ( FLOAT, CONST struct D3DXVECTOR3& ); BOOL operator == ( CONST D3DXVECTOR3& ) const; BOOL operator != ( CONST D3DXVECTOR3& ) const; } D3DXVECTOR3, *LPD3DXVECTOR3;以上是3D向量在头文件的声明,有4个构造函数,有4种创建方式。
//创建示例 #include <Windows.h> #include <D3dx9math.h> #include <d3dx11.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow) { D3DXVECTOR3 v1;//默认构造函数创建的3个分量值是随机的 FLOAT temp[] = { 1.2f, 1.3f, 0.5f }; D3DXVECTOR3 v2(temp); D3DXVECTOR3 v3(1.0f, 2.5f, -0.4f); D3DXVECTOR3 v4(v2); return 0; }
向量间的运算:可以进行基本的运算,如头文件所述。
还有一些3D向量的函数
//计算向量的长度 D3DXINLINE FLOAT D3DXVec3Length ( CONST D3DXVECTOR3 *pV ) //计算向量的点积 D3DXINLINE FLOAT D3DXVec3Dot ( CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 ) //计算向量的叉积,第一个参数指定结果储存的地址 D3DXINLINE D3DXVECTOR3* D3DXVec3Cross ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 )
相关文章推荐
- 10 普通PE下安装windows7,系统默认安装在C盘(在PE下直接setup安装不了)
- Selenium测试专项三班隆重开班
- 多项重量级改革即将启动 投资市场或迎新热点
- //组合算法 从M个数中取出N个数,无顺序
- IMAGES RE-SIZE IN MAGENTO
- Spring定时任务的几种实现
- Win7 Wifi只能用于笔记本
- 自定义framework添加到项目中Library not loaded:错误的解决方法
- mysql 存储过程和存储函数
- 设置project甘特图任务间的前置重叠时间的方法
- UVA - 1368 DNA Consensus String
- android安全学习之2—android中.pem和.pk8是什么文件?
- Android插件开发框架
- Base64 编码解码
- 数据多重完整嵌套查询语句
- 圆满完成北京辰安信息科技有限公司性能测试企业内训
- mybatis 调用 oracle 返回结果集 存储过程
- 基于HTML5 WebGL实现3D飞机叶轮旋转
- TextView使用SpannableString设置复合文本
- Java MVC + ORM框架 Nano Framework之环境搭建