WPF3D模型

<Viewport3D x:Name="MyViewport3D">
<Viewport3D.Camera>
<!-- 照相机--> <PerspectiveCamera Position="0,0,8" x:Name="MyCamera"></PerspectiveCamera>
</Viewport3D.Camera>

<!--照相机有了我们开始绘制立方体模型了,6个面-->
<Viewport3D.Children>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<!--第一个面-->
<!--Positions="0,0,0 2,0,0 2,2,0 0,2,0" 定义了四个点。
有了这四个点,就应该开始绘制三角形基元,就是要把点串起来。
TriangleIndices="0,1,2 0,2,3",意思是将0、1、2这三个顶点连
起来组成一个三角形,将0、2、3这三个顶点连起来组成另一个三角。
这里有一个技巧,我姑且这样理解,在建立三角形时,如果是逆时针连接顶点,
那么建立的三角形就是面向视野的,如果是顺时针连接,就是背向视野的(向外)
,大家可以试一下TriangleIndices="0,3,2 0,2,1"。这样就绘制出如下图所示的一个面了。-->
<GeometryModel3D x:Name="F1">
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Green"></DiffuseMaterial>
</GeometryModel3D.Material>

<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 2,0,0 2,2,0 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>

<!--第二个面-->
<GeometryModel3D x:Name="F2">
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Blue"></DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 0,0,2 0,2,2 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>

<!--第三个面-->
<GeometryModel3D x:Name="F3">
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Gray"></DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 0,0,2 2,0,2 2,0,0" TriangleIndices="0,2,1 0,3,2"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>

<!--第四个面-->
<GeometryModel3D>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Bisque"></DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="2,0,0 2,2,0 2,2,2 2,0,2" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>

<!--第五个面-->
<GeometryModel3D>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Yellow"></DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,2,2 2,2,2 2,2,0 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>

<!--第六个面-->
<GeometryModel3D>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Red"></DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,2,2 2,2,2 0,0,2 2,0,2" TriangleIndices="0,2,3 0,3,1"></MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<!--添加光源,如果没有光源则是黑色(也就是黑天)-->
<ModelVisual3D x:Name="light">
<ModelVisual3D.Content>
<AmbientLight></AmbientLight>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>
<Viewport3D Margin="10,163,300,10">
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,8" x:Name="camera"></PerspectiveCamera>
</Viewport3D.Camera>
<Viewport3D.Children>
<ModelVisual3D>
<ModelVisual3D.Content>
<!--<span style="color:#ff0000;">-->
<GeometryModel3D x:Name="F9">
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Green"/>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 2,0,0 2,2,0 0,2,0 0,2,2 0,0,2 2,0,2 2,2,2"
TriangleIndices="0,2,1 0,3,2 0,4,3 0,5,4 0,1,6 0,6,5 3,4,7 3,7,2 4,5,6 4,6,7 7,6,1 7,1,2">
</MeshGeometry3D>
</GeometryModel3D.Geometry>
</GeometryModel3D>
<!--</span>-->
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D x:Name="light2">
<ModelVisual3D.Content>
<AmbientLight></AmbientLight>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>

posted @ 2012-04-08 17:36  @张凯@  阅读(617)  评论(0编辑  收藏  举报