⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transforms 变换.htm

📁 此文件是微软MSDN中d3d部分资料的翻译文件
💻 HTM
📖 第 1 页 / 共 5 页
字号:
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><!--[if gte vml 1]><v:shapetype 
id=_x0000_t75 coordsize = "21600,21600" o:preferrelative = "t" o:spt = "75" 
filled = "f" stroked = "f" path = " m@4@5 l@4@11@9@11@9@5 xe"><v:stroke 
joinstyle = "miter"></v:stroke><v:formulas><v:f eqn = 
"if lineDrawn pixelLineWidth 0 "></v:f><v:f eqn = "sum @0 1 0 "></v:f><v:f eqn = 
"sum 0 0 @1 "></v:f><v:f eqn = "prod @2 1 2 "></v:f><v:f eqn = 
"prod @3 21600 pixelWidth "></v:f><v:f eqn = 
"prod @3 21600 pixelHeight "></v:f><v:f eqn = "sum @0 0 1 "></v:f><v:f eqn = 
"prod @6 1 2 "></v:f><v:f eqn = "prod @7 21600 pixelWidth "></v:f><v:f eqn = 
"sum @8 21600 0 "></v:f><v:f eqn = "prod @7 21600 pixelHeight "></v:f><v:f eqn = 
"sum @10 21600 0 "></v:f></v:formulas><v:path o:extrusionok = "f" 
gradientshapeok = "t" o:connecttype = "rect"></v:path><o:lock aspectratio="t" 
v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1058 
style="WIDTH: 222.75pt; HEIGHT: 75.75pt" type = "#_x0000_t75" coordsize = 
"21600,21600"><v:imagedata o:title="matmult" src = 
"Transform_files/image001.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=297 height=101
src="Transform_files/image001.gif" v:shapes="_x0000_i1058"><![endif]><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">对(<SPAN 
lang=EN-US>x,y,z)和矩阵执行以下操作产生点(x',y',z')。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><!--[if gte vml 1]><v:shape 
id=_x0000_i1066 style="WIDTH: 239.25pt; HEIGHT: 69pt" type = "#_x0000_t75" 
coordsize = "21600,21600"><v:imagedata o:title="matexpnd" src = 
"Transform_files/image002.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=319 height=92
src="Transform_files/image002.gif" v:shapes="_x0000_i1066"><![endif]><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">最常见的变换是平移、旋转和缩放。可以将产生这些效果的矩阵合并成单个矩阵,这样就可以一次计算多种变换。例如,可以构造单个矩阵,对一系列的点进行平移和旋转。更多信息,请参阅<U>矩阵串接</U>。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">矩阵以行列顺序书写。一个沿每根轴均匀缩放顶点的矩阵,也称为统一缩放,用如下数学符号表示。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><!--[if gte vml 1]><v:shape 
id=_x0000_i1059 style="WIDTH: 72.75pt; HEIGHT: 75.75pt" type = "#_x0000_t75" 
coordsize = "21600,21600"><v:imagedata o:title="matrix" src = 
"Transform_files/image003.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=97 height=101
src="Transform_files/image003.gif" v:shapes="_x0000_i1059"><![endif]><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">在<SPAN 
lang=EN-US>C++应用程序中,Microsoft&reg; 
Direct3D&reg;使用<U>D3DMATRIX</U>结构,将矩阵声明为一个二维数组。以下示例代码显示了如何初始化一个<B 
style="mso-bidi-font-weight: normal">D3DMATRIX</B>结构,使之成为一个统一缩放矩阵。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">//</SPAN><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"> 
本例中,s为浮点类型的变量</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">D3DMATRIX 
scale = {<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
class=GramE>s</SPAN>,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>s,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f, <SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>0.0f,<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>s,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>0.0f,<SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>1.0f<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN 
lang=EN-US 
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">};<o:p></o:p></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<H1><A name=平移和缩放>平移和缩放</A></H1><SPAN style="mso-bookmark: 平移和缩放"></SPAN>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<H2><SPAN 
style="FONT-FAMILY: 黑体; mso-fareast-language: ZH-CN; mso-ascii-font-family: Arial">平移</SPAN><SPAN 
lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></H2>
<P>以下变换将点(<SPAN lang=EN-US>x,y,z)平移到一个新的点(x',y',z')。</SPAN></P>
<P><SPAN lang=EN-US><!--[if gte vml 1]><v:shape id=_x0000_i1060 
style="WIDTH: 179.25pt; HEIGHT: 77.25pt" type = "#_x0000_t75" coordsize = 
"21600,21600"><v:imagedata o:title="transl8" src = 
"Transform_files/image004.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=239 height=103
src="Transform_files/image004.gif" v:shapes="_x0000_i1060"><![endif]></SPAN></P>
<P>可以在<SPAN 
lang=EN-US>C++应用程序中手工创建一个平移矩阵。以下示例代码显示了的一个函数的源码,该函数创建一个矩阵用于平移顶点。</SPAN></P><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">D3DXMATRIX <SPAN class=GramE>Translate(</SPAN>const float <SPAN class=SpellE>dx</SPAN>, const float <SPAN class=SpellE>dy</SPAN>, const float <SPAN class=SpellE>dz</SPAN>) {<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>D3DXMATRIX ret;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>D3DXMatrixIdentity(&amp;ret);<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="COLOR: blue">//</SPAN><SPAN style="COLOR: green"> 由Direct3DX实现</SPAN><o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=GramE>ret(</SPAN>3, 0) = <SPAN class=SpellE>dx</SPAN>;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=GramE>ret(</SPAN>3, 1) = <SPAN class=SpellE>dy</SPAN>;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=GramE>ret(</SPAN>3, 2) = <SPAN class=SpellE>dz</SPAN>;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=GramE>return</SPAN> ret;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">//</SPAN><SPAN style="COLOR: green"> 平移结束</SPAN><o:p></o:p></SPAN></PRE>
<P>为了方便,<SPAN 
lang=EN-US>Direct3DX工具库提供了<U>D3DXMatrixTranslation</U>函数。<o:p></o:p></SPAN></P>
<H2><SPAN 
style="FONT-FAMILY: 黑体; mso-fareast-language: ZH-CN; mso-ascii-font-family: Arial">缩放</SPAN><SPAN 
lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></H2>
<P>以下变换用指定值缩放点(<SPAN lang=EN-US>x,y,z)的x-,y-和z-方向,产生新的点(x',y',z')。</SPAN></P>
<P><SPAN lang=EN-US><!--[if gte vml 1]><v:shape id=_x0000_i1061 
style="WIDTH: 177pt; HEIGHT: 75.75pt" type = "#_x0000_t75" coordsize = 
"21600,21600"><v:imagedata o:title="matscale" src = 
"Transform_files/image005.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=236 height=101
src="Transform_files/image005.gif" v:shapes="_x0000_i1061"><![endif]></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -