2

好的,我对 3D 投影一无所知,但我需要<Matrix3D/>根据我可用的一些预定变量找出一种在 Silverlight ( ) 中投影图片的方法。我已经到处搜索了一些示例代码或非常基本的“愚蠢”文章集,但还没有找到任何有意义的东西。即使是伟大的可汗学院对我来说也不够简单。相机、视野、旋转——我的大脑无法将自己包裹在这些东西上。

我需要以下预测:

  • 等距
  • 正交
  • 看法

所以,我有许多变量提供给我,比如 X、Y,有时还有 Z。例如,这个 -

类型:正交
X:70°
 Y:10°
 Z:20°

以某种方式将 this ->普通的变成 this ->正字法并且

类型:等轴测
X:314.7°
 Y:35.4°
 Z:299.8°

进入这个->等距

我还有其他信息,例如图片出现在画布上的坐标、宽度/高度等,如果这些信息也有用的话。

有谁知道任何可以解释这一点的资源(请从维基百科开始——这些东西对我来说没有任何意义)。或者您知道这些计算是如何工作的(.NET,无 WPF 3D 函数)?

4

3 回答 3

1

好的。Matrix3D 本身是一个简单的类,很难知道要在矩阵中填充什么。在开始编码之前,请通读以下任何一项:

  1. 任何关于计算机图形学的书
  2. Windows® 的 3D 编程:Charles Petzold 为 Windows Presentation Foundation 编写的三维图形编程
  3. 在最坏的情况下,如果您没有时间,那么至少阅读 opengl 红皮书的 3 章(只是变换矩阵的数学)。

您可能想知道为什么我要您阅读一些大书,而您需要的是快速解决方案。在我看来,如果您了解其背后的数学原理,3D 图形编程将非常简单(并不复杂)。如果不是,那么您将花费双倍的时间来试图找出您的程序为什么没有按照您的意愿运行。

于 2010-07-09T04:45:25.217 回答
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/

于 2010-07-09T19:46:46.260 回答
1

在这里阅读课程以获得数学真棒的东西...... http://chortle.ccsu.edu/vectorlessons/vectorIndex.html#01

于 2013-03-06T19:03:32.730 回答