当前位置: 首页 > news >正文

佛山专业英文网站建设seo点击器

佛山专业英文网站建设,seo点击器,软件商店vivo官方下载,为什么网站上传都上传不成功本博客的例子来自于《基于DirectX11的3D图形程序设计案例教程》 矩阵转换函数XMStoreFloat*x*#xff08;*表示正数#xff0c;**矩阵#xff09; 如#xff1a;XMStoreFloat4x4#xff08;以44矩阵为例#xff09; 函数定义#xff1a; VOID XMStoreFloat4x4([out]…  本博客的例子来自于《基于DirectX11的3D图形程序设计案例教程》 矩阵转换函数XMStoreFloat*x**表示正数*×*矩阵 如XMStoreFloat4x4以4×4矩阵为例 函数定义 VOID XMStoreFloat4x4([out] XMFLOAT4X4 *pDestination, //存储数据的地址[in] XMMATRIX M //要存储的数据矩阵);函数介绍 是一个行主矩阵形式。要写出列主数据需要在调用存储函数之前通过XMMatrixTranpose来替换XMMATRIX。 参考https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.storing.xmstorefloat4x4(vvs.85).aspx 例子 XMFLOAT4X4 mScalFL;//利用XMStoreFloat4x4函数把XMMATRIX对象mScal的内容存入XMFLOAT4X4对象mScalFL中XMStoreFloat4x4(mScalFL, mScal);矩阵缩放函数XMMatrixScaling XMMatrixScaling 函数定义 XMMATRIX XMMatrixScaling([in] float ScaleX, //沿x轴缩放因子ScaleX[in] float ScaleY, //沿y轴缩放因子ScaleX[in] float ScaleZ //沿z轴缩放因子ScaleX);参考https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.matrix.xmmatrixscaling(vvs.85).aspx 例子 //声明3个XMMATRIX对象//分别用来表示平移矩阵mTrans,旋转矩阵mRota,以及缩放矩阵mScalXMMATRIX mTrans, mRota, mScal;//第一步生成缩放矩阵//调用XMMatrixScaling()函数用以生成缩放矩阵该函数3个参数分别表示//在X,Y,Z轴上的缩放量。//在X, Y, Z轴缩小到1/5即0.2然后将生成的缩放矩阵**赋值给mScal**mScal XMMatrixScaling(0.2f, 0.2f, 0.2f);//注意0.2形式及时变为1也只能写成1.0或1.//将生成的缩放矩阵打印到控制台上**这里只是方便我们查看生成的矩阵此步骤非必须**cout 缩放矩阵为 endl;//由于重载的输出操作符是针对XMFLOAT4X4对象所以这里要将XMMATRIX//对象转换为XMFLOAT4X4对象//首先声明一个XMFLOAT4X4对象XMFLOAT4X4 mScalFL;//利用XMStoreFloat4x4函数把XMMATRIX对象mScal的内容存入XMFLOAT4X4对象mScalFL中XMStoreFloat4x4(mScalFL, mScal);cout mScalFL;矩阵平移函数XMMatrixTranslation XMMatrixTranslation 函数定义 XMMATRIX XMMatrixTranslation([in] float OffsetX, //x轴平移量[in] float OffsetY, //y轴平移量[in] float OffsetZ //z轴平移量);参考https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.matrix.xmmatrixtranslation(vvs.85).aspx 例子 //声明3个XMMATRIX对象//分别用来表示平移矩阵mTrans,旋转矩阵mRota,以及缩放矩阵mScalXMMATRIX mTrans, mRota, mScal; //第三步生成平移矩阵//在X轴平移1个单位在Y轴平移2个单位在Z轴平移-3个单位//调用函数XMMatrixTranslation生成平移矩阵该函数3个参数分别表示在XYZ轴上的平移量mTrans XMMatrixTranslation(1.0f, 2.0f, -3.0f);//将生成的旋转矩阵打印到控制台上方法同上这里不再赘述cout 平移矩阵为 endl;XMFLOAT4X4 mTransFL;XMStoreFloat4x4(mTransFL, mTrans);cout mTransFL;矩阵旋转函数XMMatrixRotationX 参考https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.matrix.xmmatrixrotationy(vvs.85).aspx 例子 //声明3个XMMATRIX对象//分别用来表示平移矩阵mTrans,旋转矩阵mRota,以及缩放矩阵mScalXMMATRIX mTrans, mRota, mScal; XMMATRIX XMMatrixRotationX([in] float Angle //绕x轴旋转的角度以弧度表示。当沿旋转轴向原点看时角度是顺时针测量的。); XMMATRIX XMMatrixRotationY([in] float Angle //绕y轴旋转的角度以弧度表示。当沿旋转轴向原点看时角度是顺时针测量的。); XMMATRIX XMMatrixRotationZ([in] float Angle //绕z轴旋转的角度以弧度表示。当沿旋转轴向原点看时角度是顺时针测量的。);将三者整合起来就是刚体变换 相关知识可以参考我的另一博客用matlab写的可以看讲解代码不用看 https://blog.csdn.net/weixin_41649786/article/details/82115829 例子 //第四步将上面生成的3个变换矩阵组合成一个最终的变换矩阵//首先声明一个XMMATRIX对象用来存放最终的变换矩阵XMMATRIX mFinal;//利用XMMatrixMultiply来完成矩阵的相乘//**注意**:由于矩阵相乘不具有交换性所以做乘法时各个变换矩阵的顺序很重要//教材的例子的变换顺序是缩小mScal-旋转mRota-平移mTrans//所以这里首先将mScal和mRota相乘的中间结果放入mFinal中mFinal XMMatrixMultiply(mScal, mRota);//再将中间结果与mTrans相乘得到最终结果并覆盖先前的mFinalmFinal XMMatrixMultiply(mFinal, mTrans);//将生成的变换矩阵打印到控制台上cout 最终变换矩阵为 endl;XMFLOAT4X4 mFinalFL;XMStoreFloat4x4(mFinalFL, mFinal);cout mFinalFL;矩阵相乘函数XMMatrixMultiply XMMatrixMultiply 函数定义 XMMATRIX XMMatrixMultiply([in] XMMATRIX M1, //第一个相乘的矩阵[in] XMMATRIX M2 //第二个相乘的矩阵);参考https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.matrix.xmmatrixmultiply(vvs.85).aspx、 例子前文中已经包含了 感兴趣的可以看完整代码来自于《基于DirectX11的3D图形程序设计案例教程》 //本例由于需要使用XNA函数库 //所以需要包含d3dcompiler.h和xnamath.h #includeiostream #included3dcompiler.h //#includexnamath.h//在从Windows8开始DirectX 11中xnamath.h就去掉了替换成DirectXMath.h头文件。//所以如果遇到一些在旧系统上开发的代码示例如果提示找不到xnamath.h的话可以用下面两行代码代替 #include DirectXMath.h using namespace DirectX;using namespace std;//重载操作符让XMVECTOR的对象也可以使用cout进行输出 //向量会以X, X, X形式输出到屏幕上 ostream operator (ostream os, XMVECTOR u) {//XMVectorGetX()XMVectorGetY()XMVectorGetZ(), XMVectorGetW()//这4个函数用来获取XMVECTOR的4个分量os ( XMVectorGetX(u), XMVectorGetY(u), XMVectorGetZ(u), XMVectorGetW(u)) endl;return os; }//重载操作符让XMFLOAT4X4的对象也可以使用cout进行输出 //矩阵会以行-列的形式输出到屏幕上 //注意这里使用XMFLOAT4X4对象作为参数而不是XMMATRIX作为参数 // 这是由于因为系统x64/x86不同会存在对齐的问题详细说明 // 参考教材第 页。使用XMMATRIX会报以下错误 // error C2719: “m”: 具有 __declspec(align(16)) 的形参将不被对齐 // 大家可以试一下如果这里使用XMMATRIX做为参数会有什么结果 ostream operator (ostream os, XMFLOAT4X4 m) {for(int i0; i 4; i){for(int j0; j 4; j){//通过XMFLOAT4X4的重载括号操作符引用矩阵元素os\tm(i, j) ;}os endl;}os endl;return os; }int main() {//声明3个XMMATRIX对象//分别用来表示平移矩阵mTrans,旋转矩阵mRota,以及缩放矩阵mScalXMMATRIX mTrans, mRota, mScal;//第一步生成缩放矩阵//调用XMMatrixScaling()函数用以生成缩放矩阵该函数3个参数分别表示//在X,Y,Z轴上的缩放量。//在X, Y, Z轴缩小到1/5即0.2然后将生成的缩放矩阵**赋值给mScal**mScal XMMatrixScaling(0.2f, 0.2f, 0.2f);//将生成的缩放矩阵打印到控制台上**这里只是方便我们查看生成的矩阵此步骤非必须**cout缩放矩阵为endl;//由于重载的输出操作符是针对XMFLOAT4X4对象所以这里要将XMMATRIX//对象转换为XMFLOAT4X4对象//首先声明一个XMFLOAT4X4对象XMFLOAT4X4 mScalFL;//利用XMStoreFloat4x4函数把XMMATRIX对象mScal的内容存入XMFLOAT4X4对象mScalFL中XMStoreFloat4x4(mScalFL, mScal);coutmScalFL;//第二步生成旋转矩阵//绕Y轴旋转45度即1/4PI//调用XMMatrixRotationY()函数用以生成旋转矩阵该函数只有一个参数为旋转的弧度//XM_PIDIV4为XNA库定义的数据常量表示1/4PImRota XMMatrixRotationY(XM_PIDIV4);//将生成的旋转矩阵打印到控制台上方法同上这里不再赘述cout旋转矩阵为endl;XMFLOAT4X4 mRotaFL;XMStoreFloat4x4(mRotaFL, mRota);coutmRotaFL;//第三步生成平移矩阵//在X轴平移1个单位在Y轴平移2个单位在Z轴平移-3个单位//调用函数XMMatrixTranslation生成平移矩阵该函数3个参数分别表示在XYZ轴上的平移量mTrans XMMatrixTranslation(1.0f, 2.0f, -3.0f);//将生成的旋转矩阵打印到控制台上方法同上这里不再赘述cout平移矩阵为endl;XMFLOAT4X4 mTransFL;XMStoreFloat4x4(mTransFL, mTrans);coutmTransFL;//第四步将上面生成的3个变换矩阵组合成一个最终的变换矩阵//首先声明一个XMMATRIX对象用来存放最终的变换矩阵XMMATRIX mFinal;//利用XMMatrixMultiply来完成矩阵的相乘//**注意**:由于矩阵相乘不具有交换性所以做乘法时各个变换矩阵的顺序很重要//教材的例子的变换顺序是缩小mScal-旋转mRota-平移mTrans//所以这里首先将mScal和mRota相乘的中间结果放入mFinal中mFinal XMMatrixMultiply(mScal,mRota);//再将中间结果与mTrans相乘得到最终结果并覆盖先前的mFinalmFinal XMMatrixMultiply(mFinal,mTrans);//将生成的变换矩阵打印到控制台上cout最终变换矩阵为endl;XMFLOAT4X4 mFinalFL;XMStoreFloat4x4(mFinalFL, mFinal);coutmFinalFL;//按照例子声明一个XMVECTOR对象//例子中向量为3维向量而XMVectorSet只能生成4维向量//最后一个分量如果是1表示这是一个向量如果是0表示这是一个点//这种向量称之为“齐次向量”详细说明见补充知识。XMVECTOR vector XMVectorSet(5.0f, 0.0f, 0.0f, 1.0f);//利用重载的操作符将声明的XMVECTOR对象打印到控制台上cout变换前的向量为endl;coutvector;//将上面生成的最终变换矩阵应用到XMVECTOR对象上//并将生成的新向量覆盖原来的向量vector XMVector4Transform(vector, mFinal);//将最终的向量打印到控制台上cout变换后的向量为endl;coutvector;system(PAUSE); //让控制台不要闪退return 0;} 注1.本博客的例子来自于《基于DirectX11的3D图形程序设计案例教程》 2.以上介绍的函数都在DirectXMath.h这个头文件中。 3.也可以下载本博客文档下载地址https://download.csdn.net/download/weixin_41649786/10711869 4.跟多的相关函数可以看https://www.cnblogs.com/zhangbaochong/p/5240358.html 路漫漫其修远兮吾将上下而求
http://www.zqtcl.cn/news/132156/

相关文章:

  • 一级a做爰片免播放器网站扬中门户网
  • 舆情网站大全模板网站有哪些在哪里下载
  • 新网站关键词怎么优化深圳公司网站推广
  • 新加坡购物网站排名英文版wordpress安装
  • 哪个网站做ppt能赚钱企查查企业信息
  • 学校建设网站的意义wordpress 鸟
  • 一个ip做网站网站建设基础课件
  • 包装设计十大网站连云港网站建设开发
  • 川沙网站建设网站推广服务外包有哪些渠道
  • 哪些网站可以做招商广告手机怎么创网站免费
  • 换物网站为什么做不起来网站开发工具的功能包括
  • 引导式网站君和网站建设
  • 西柏坡门户网站建设规划书自己做照片书的网站
  • 做网站横幅的图片多大公司做自己的网站平台台
  • 百度网站建设工资给城市建设提议献策的网站
  • 如何进入网站管理页面维护网站需要多少钱
  • 深圳住房和城乡建设局网站阿里云学生免费服务器
  • 如何做的网站手机可以用吗绵阳优化网站排名
  • 营销网站建设大全wordpress wp_register
  • 公司做年审在哪个网站网络seo专员招聘
  • 宿州网站建设费用网站快速建设入门教程
  • 怎么自己做网站加盟网站建设意义模板
  • 网站开发怎样实现上传视频教程内容导购网站模板
  • 济南做网站建设的公司广告公司资质
  • 域名分类网站微擎 wordpress
  • 公司产品营销策划安徽seo
  • 网站 平均加载时间百度搜索竞价推广
  • 赛车网站开发淄博网站建设及托管
  • 过时的网站湖州公司网站建设
  • 环球设计网站网站建设的面试要求