<Window x:Class="Visual3DSample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:Primitive3DSurfaces;assembly=Primitive3DSurfaces" Title="3D 模型範例" WindowState="Normal" > <Window.Triggers> <!--注册一个事件,当窗体加载的时候,角度从0旋转到360度在10秒内。一直重复--> <EventTrigger RoutedEvent="Window.Loaded" > <EventTrigger.Actions> <BeginStoryboard> <Storyboard Name="myStoryBoard"> <DoubleAnimation Storyboard.TargetName="rotation" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="0:0:10" RepeatBehavior="Forever"/> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Window.Triggers> <Grid> <Grid.Background> <!--网格使用了线性渐变色,从左上角到左下角,由Black到DarkBlue--> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="DarkBlue" Offset="1"/> </LinearGradientBrush> </Grid.Background> <Viewport3D Grid.Column="0" Grid.Row="0"> <!--定义照相机--> <Viewport3D.Camera> <PerspectiveCamera Position="0,0,-8" UpDirection="0,1,0" LookDirection="0,0,1" FieldOfView="45" NearPlaneDistance="0.125"/> </Viewport3D.Camera> <!--定义光源--> <ModelVisual3D> <ModelVisual3D.Content> <DirectionalLight Color="White" Direction="0,0,1" /> </ModelVisual3D.Content> </ModelVisual3D> <!--定义3D模型--> <ModelVisual3D> <!--定义模型的旋转规则:按照上面定义好的旋转规则(myStoryBoard)绕Y轴旋转--> <ModelVisual3D.Transform> <RotateTransform3D> <RotateTransform3D.Rotation> <AxisAngleRotation3D x:Name="rotation" Angle="0" Axis="0,1,0" /> </RotateTransform3D.Rotation> </RotateTransform3D> </ModelVisual3D.Transform> <!--球体(获取后台定义好的数据源)--> <my:Sphere3D> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="2" OffsetY="0" OffsetZ="0" /> </ModelVisual3D.Transform> <!--设置材质--> <my:Sphere3D.Material> <DiffuseMaterial> <DiffuseMaterial.Brush> <!--使用图片--> <!--<SolidColorBrush Color="red" Opacity="1.0"/>--> <ImageBrush ImageSource=".\Images\earth.jpg" /> </DiffuseMaterial.Brush> </DiffuseMaterial> </my:Sphere3D.Material> </my:Sphere3D> <!--圆柱体--> <my:Cylinder3D> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="-1" OffsetY="0" OffsetZ="1.73" /> </ModelVisual3D.Transform> <my:Cylinder3D.Material> <DiffuseMaterial> <DiffuseMaterial.Brush> <ImageBrush ImageSource=".\Images\Autumn.jpg" /> </DiffuseMaterial.Brush> </DiffuseMaterial> </my:Cylinder3D.Material> </my:Cylinder3D> <!--圆柱体--> <my:Cone3D> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="-1" OffsetY="0" OffsetZ="-1.73" /> </ModelVisual3D.Transform> <my:Cone3D.Material> <DiffuseMaterial> <DiffuseMaterial.Brush> <ImageBrush ImageSource=".\Images\Azul.jpg" /> </DiffuseMaterial.Brush> </DiffuseMaterial> </my:Cone3D.Material> </my:Cone3D> </ModelVisual3D> </Viewport3D> </Grid> </Window>
2、定义模型的数据源代码比较多就不贴上了,需要请下载源代码。
源代码下载:点击打开链接