Matrix3D入门(Silverlight)

时间:2010-07-09 04:31:52

标签: c# vb.net silverlight matrix projection

好吧,我对3D投影一无所知,但我需要找到一种方法来根据我可以使用的一些预定变量在Silverlight(<Matrix3D/>)中投影图片。我搜索了一些示例代码的高低,或者是一篇非常基本的“ for stupidies ”文章集,但还没有找到任何有意义的东西。即使是伟大的Khan Academy对我来说也不够简单。相机,视野,旋转 - 我的大脑无法绕过这些东西。

我需要以下预测:

  • 等距
  • 正交
  • 视角

所以,我有很多变量提供给我,比如X,Y,有时甚至是Z.例如,这个 -

Type: Orthographic
X:    70°
Y:    10°
Z:    20°

以某种方式改变了这一点 - &gt; normal进入此 - &gt; orthographic

Type: Isometric
X:    314.7°
Y:     35.4°
Z:    299.8°

进入 - > isometric

我还有其他信息,例如图片在画布上的位置坐标,宽度/高度等等,如果该信息也有用的话。

有没有人知道任何可以解释这个的资源(请刮开维基百科 - 那些东西对我没有任何意义)。或者您知道这些计算是如何工作的(.NET,没有WPF 3D功能)吗?

3 个答案:

答案 0 :(得分:1)

好。 Matrix3D本身是一个简单的类,它很难知道填充矩阵的内容。在您进入编码之前,请阅读以下任何内容:

  1. 任何关于计算机图形学的书
  2. Windows®3D编程:Charles Petzold为Windows Presentation Foundation进行三维图形编程
  3. 在最糟糕的情况下,如果你没有任何时间,那么至少阅读opengl红皮书的3章(只是转换矩阵的数学)。
  4. 您可能想知道为什么我要求您阅读一些大书,而您需要的是快速解决方案。在我看来,如果你理解背后的数学(它并不复杂),3D图形编程将变得简单。如果没有,那么你将花费两倍的时间来试图找出你的程序没有做你想要的原因。

答案 1 :(得分:1)

该网站对.net:http://www.simple-talk.com/dotnet/.net-framework/building-a-simple-3d-engine-with-silverlight/

中执行矩阵运算有很好的介绍

另外,请查看维基百科的矩阵轮换背景:http://en.wikipedia.org/wiki/Rotation_matrix

你可以永远不会错过一点Petzold:http://www.charlespetzold.com/blog/2009/07/Using-the-Matrix3DProjection-Class-in-Silverlight-3.html

这也是使用矩阵处理线性变换的一个很好的介绍:http://polymathprogrammer.com/2008/09/01/cartesian-coordinates-and-transformation-matrices/

答案 2 :(得分:1)

在这里阅读课程,以获得数学上令人敬畏的东西...... http://chortle.ccsu.edu/vectorlessons/vectorIndex.html#01