Silverlight: 使用 Silverlight 2.0 构建高级 3D 动画
2009-02-09 11:57:24 来源:WEB开发网核心提示: 选定形状后,会构建名为 Net(与 .NET 没有任何关系)的一个二维展开平板,Silverlight: 使用 Silverlight 2.0 构建高级 3D 动画(10),此过程共分为两个阶段(如图 4 所示),首先在内存中构建一个图形,因此 Y 应从零开始,所以,一个 GraphNod
选定形状后,会构建名为 Net(与 .NET 没有任何关系)的一个二维展开平板。此过程共分为两个阶段(如图 4 所示)。首先在内存中构建一个图形,一个 GraphNode 对应形状的一个面(请参阅 Graph.cs)。通过从嵌入应用程序集的一个 .shp 资源输入一组连接信息(指出哪些面相互连接)来构建该图形。例如,以下是 cube.shp 的内容:
Figure 4Building the Shape, from Graph to XAML
1:3,4,5,2
2:1,5,6,3
3:2,6,4,1
4:3,6,5,1
5:1,4,6,2
6:2,5,4,3
然后,可将图形中的任意 GraphNode 选作开始构建 Net 的首个节点(请参阅代码下载中的 Net.cs 获取详细信息)。然后布置一个二维 FlatFace,其边数与 GraphNode 的相邻点数量相同。接着,选择任意相邻的 GraphNode 来重复此过程,布置下一个 FlatFace 以便其与当前的 FlatFace 共享一个边。每个 GraphNode 仅访问一次,继续此过程直至访问完所有的 GraphNode,生成树结构的 FlatFace。
在 3D 动画的每个帧中,通过 Net 构建一个三维多面体(可能部分闭合)(请参阅本文后面部分的 Polyhedron.cs 了解此操作的详细信息)。这需要将 FlatFace 树复制到 Face 树中,并用 3D 点替换 2D 角点。(图 5 显示了两个坐标系统。由于我希望从水平面开始,因此 Y 应从零开始。所以,通过设置 X=X、Y=0 和 Z=Y 来从 2D 映射到 3D。)
Tags:Silverlight 使用 Silverlight
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接