如何在C#中制作旋转立方体动画?

时间:2008-12-09 13:54:28

标签: c# animation 3d cube

我想做这样的事情:表格上的旋转立方体。我不想使用任何外部库或DLL,只是纯.NET 3.5(没有directx)。并且仅使用线条构建立方体。你能告诉我怎么做吗?

我不想使用外部库,因为我不需要> 100 MB的库做这件事吧?我只想动画一个用线条制作的旋转立方体。

6 个答案:

答案 0 :(得分:5)

这就是你在GDI +中制作立方体的方法

使用GDI + Euler旋转的C#3D绘图

http://www.vcskicks.com/3d-graphics-improved.html

带阴影的C#3D绘图立方体

http://www.vcskicks.com/3d_gdiplus_drawing.html

答案 1 :(得分:4)

学习作业?这可以通过一些简单的3D数学来完成。您只需要了解矩阵代数,3D变换和3D-> 2D视图变换的基础知识。 DirectX tutorial涵盖了这一点,但您可以谷歌搜索它,您将获得大量其他教程。

已添加:只是为了澄清 - 我不打算使用DirectX或其他任何东西。您可以使用标准的System.Drawing工具执行此操作。您只需要理解数学,并在DirectX教程中进行了解释。

答案 2 :(得分:0)

您可以尝试使用WPF和WPF团队发布的3D Tools源代码。

3DTools

答案 3 :(得分:0)

假设您正在使用WPF作为GUI:

  1. 使用图形程序制作多维数据集的动画PNG。
  2. 使用APNG WPF Control将图像插入GUI。
  3. 如果需要,这将产生一个小的装配尺寸和透明背景。

答案 4 :(得分:0)

您需要一种表示3d点的方法。除非使用directx或WPF,否则在.NET中没有现成的结构。

然后将标准的euler旋转矩阵应用于点,即可获得变换点。如果你只进行旋转,你可以使用3x3矩阵,但如果你想要翻译,你最好使用4x4矩阵和同质点。

在此之后,您需要一种方法将这些3d点投影到2D画布。根据您使用透视投影还是正交投影,投影矩阵看起来会有所不同。

答案 5 :(得分:-1)

一般来说,查看WPF,它可以帮助您使用一些可疑的代码行来完成此操作。您还可以在Forms中托管WPF窗口。

http://msdn.microsoft.com/en-us/library/aa970268.aspx