Managed DirectX +C# 开发(入门篇)(三)

原创 2007年06月26日 10:10:00

  第二章 向量的运算(2)

7:向量的最大与最小值
最大值是从两个向量X,Y,Z值中分别取出最大值组成一个新向量;
最小值是从两个向量X,Y,Z值中分别取出最小值组成一个新向量;
看以下代码:
 
              private void VectorMax()
              {
                     Vector3 vec1 =new Vector3(6,2,3);
                     Vector3 vec2= new Vector3(1,2,5);
                     Vector3 vec3=Vector3.Maximize (vec1,vec2);
                     string disString="V(6,2,3)与V(1,2,5)最大值:/n";
                     disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
                     MessageBox.Show(disString,"向量最大值");     
              }
执行结果为:
8:求两个向量间的一个插值向量
设有两个向量pLeft,pRight,得到的向量值计算公式为:
pLeft + interpolater(pRight - pLeft).
举例代码如下:
private void VectorLerp()
              {
                     Vector3 vec1 =new Vector3(6,2,3);
                     Vector3 vec2= new Vector3(1,2,5);
                     Vector3 vec3=Vector3.Lerp(vec1,vec2,0.5f);
                     string disString="V(6,2,3)与V(1,2,5)之间的一个插值向量:/n";
                     disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
                     MessageBox.Show(disString,"插值向量");  
              }
执行结果:
显然 3.5=6+(1-6)*0.5;2=2+(2-2)*0.5;4=3+(5-3)*0.5;
9:点积
数学上定义点积是两个向量的乘积。按下面等式计算:
 
点积有一个重要的定理称为余弦定律;
u • v =|u||v|cosθ,表示两个向量的点积是它们的模长和夹角的余弦之积。因此,如果u 和v都是单位向量,那么u • v就是它们夹角的余弦。
一些点积有用的特性
(1)u • v = 0,那么u⊥v。
(2)u • v > 0,那么两个向量的角度θ小于90度。
(3)u • v < 0,那么两个向量的角度θ大于90度。
比如以下求两个向量的点积示例:
private void VectorDot()
         {
              Vector3 vec1 =new Vector3(6,2,3);
              Vector3 vec2= new Vector3(1,2,5);
              float dotValue=Vector3.Dot(vec1,vec2);
              string disString="V(6,2,3)与V(1,2,5)的点积:/n"+dotValue.ToString();
              MessageBox.Show(disString,"向量点积");   
         }
执行结果如下:
10:叉积
通过把两个向量u和v相乘的到另一的向量p.把u和v两个向量通过十字相乘得到向量p,向量p垂直于u和v。也就是说向量p垂直于u并且垂直于v。
计算公式是:
 也就是,得到后来的向量X,Y,Z值分别是:
 注意:向量p垂直于u 和v所决定的平面,至于方向因左右手坐标系不同而不同;
以下代码为在XOY平面内两个向量作叉积,最后返回的值垂直于XOY平面,也就是说平行于Z轴;
     private void VectorCross()
         {
              Vector3 vec1 =new Vector3(6,4,0);
              Vector3 vec2= new Vector3(-1,2,0);
              Vector3 vec3=Vector3.Cross(vec1,vec2);
              string disString="V(6,4,0)与V(-1,2,0)的叉积:/n";            disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
              MessageBox.Show(disString,"向量叉积");        
         }
执行结果是:
 
 
 

C++ DirectX 游戏开发初级教程

-
  • 1970年01月01日 08:00

DirectX 9 UI设计学习笔记之一:开场白+第一章User Interfaces

大家好!我叫哈大锤,万万没想到我竟然开始学习UI 编程了!学完之后,我就能够设计出一款不错的游戏引擎,然后找到工作,妈妈再也不用担心我的学习了!用不了多久,我就能升职加薪,打败纳德拉,追上比尔·盖茨,...
  • u011873969
  • u011873969
  • 2014-10-23 16:58:02
  • 1762

基于DirectX的简单UI界面制作

代码里注释写的比较清楚,仅以此
  • u013025310
  • u013025310
  • 2014-08-01 23:01:45
  • 5117

C# 调用DirectX开发例子20个

  • 2008年09月06日 19:39
  • 14.1MB
  • 下载

使用directX 7结合C#进行2D游戏编程

使用directX 7结合C#进行2D游戏编程 前言 对于C#的开发人员来讲,GDI+ 是一个拥有丰富的绘图API指令、传统、高效的程序集。但不幸的是,你要想用她来开发一个复杂而又平滑的动...
  • u011555996
  • u011555996
  • 2017-09-13 10:39:33
  • 266

<em>Managed</em> <em>DirectX</em>9.0 SDK 中文<em>文档</em>

2008-04-28 上传大小:2.03MB <em>DirectXManaged</em>游戏编程 本中文<em>文档</em>是根据Microsoft公开发布的<em>DirectX</em> SDK Summer 2004 帮助<em>文档</em>英文版翻译(只有托管代码版本)。虽然目前...
  • 2018年03月23日 00:00

[原创]Managed DirectX 基础使用教程(零)

hangtao_me@yahoo.com.cn        由于下学期的毕业设计,最近开始研究起了.NET平台下的DirectX.本来是不打算用DirectX的,因为我不会DirectX - -||...
  • tommake
  • tommake
  • 2010-01-25 16:17:00
  • 2085

深入Managed DirectX9

作者  calyman    clayman_joe@yahoo.com.cn   (超级好的翻译。建议初学者仔细看)文章来源 >> http://www.cnblogs.com/dagon007/a...
  • kenkao
  • kenkao
  • 2010-09-14 08:47:00
  • 4942

<em>DirectX</em>9.0 SDK中文<em>文档</em>(不是<em>Managed</em> <em>DirectX</em>)

下载 &gt; <em>开发</em>技术 &gt; 其它 &gt; <em>DirectX</em>9.0 SDK中文<em>文档</em>(不是<em>Managed</em> <em>DirectX</em>) ...<em>DirectX</em>9.0 SDK中文<em>文档</em> 此处提供的所有Direct3D 9.0 SDK <em>文档</em>(中文版)的...
  • 2018年03月23日 00:00

<em>DirectX</em> for <em>Managed</em> Code

适用于.net平台的<em>DirectX</em>动态链接库,适合于在.net平台下<em>开发</em>高级的3D界面等 ...<em>Managed</em> <em>DirectX</em> 9.0 SDK中文<em>文档</em> 立即下载 上传者: funner206 时间: 2008-...
  • 2018年03月24日 00:00
收藏助手
不良信息举报
您举报文章:Managed DirectX +C# 开发(入门篇)(三)
举报原因:
原因补充:

(最多只允许输入30个字)