使用WPF实现3D场景一节能
2020-10-21 08:32:47 菏泽汽车网
在这篇文章里,将介绍如何实现一个简单的三维场景,一个三维的空间,包括空间内的三维物体的组合.
首先介绍一下一个三维场景里的基本元素:
先是定义一个简单的三维的场景环境
代码如下:
Viewport3DName="myViewport"
/Viewport3D
以上是定义了一个名称叫做 myViewport 的的三维场景,接下来可以在这个三位场景里添加一些元素:
元素一:照相机
照相机是三维场景内用户的视角,当然照相机也是唯一的。
来看如何定义一个简单的照相机代码:
mera
PerspectiveCameraFarPlaneDistance="3000"NearPlaneDistance="0.25"FieldOfView="90"Position="1800,0,0"LookDirection="-1,0,0"UpDirection="0,1,0"/PerspectiveCamera
/mera
这里面描述了照相机在三维场景里的位置,包括它观察的角度,最远的视线,等等这样信息和属性。如果想灵活的使用照相机改变视角会在第二讲和第三讲里详尽的介绍。
元素一:三维模型
三维模型是三维场景内的物体,也就是模型中的元素,不唯一,可以组合,重叠。
来看如何定义一个简单的三维模型组合的代码:
ModelVisual3Dx:Name="topModelVisual3D"
ildren
ModelVisual3D
ntent
DirectionalLightColor="#FFFFFFFF"Direction="-3,-4,-5"/
/ntent
/ModelVisual3D
ModelVisual3D
ntent
GeometryModel3DGeometry="{StaticResourcechair}"
terial
DiffuseMaterial
ush
SolidColorBrushColor="Yellow"Opacity="1.0"/
/ush
/DiffuseMaterial
/terial
ansform
TranslateTransform3DOffsetX="0"OffsetY="-200"OffsetZ="-600"/
/ansform
/GeometryModel3D
/ntent
/ModelVisual3D
ModelVisual3D
ntent
GeometryModel3DGeometry="{StaticResourcetable}"
terial
DiffuseMaterial
ush
SolidColorBrushCol可以说是抢了他们的“风头”。珍妮弗与贾斯汀自2011年5月相恋or="Yellow"Opacity="1.0"/
/ush
/DiffuseMaterial
/terial
ansform
TranslateTransform3咸阳市委书记千军昌DOffsetX="0"OffsetY="20"OffsetZ="60"/
/ansform
/GeometryModel3D
/ntent
/ModelVisual3D
ModelVisual3D
ntent
GeometryModel3DGeometry="{StaticResourceman}"
terial
DiffuseMaterial
ush
SolidColorBrushColor="black"Opacity="1.0"/
/ush
/DiffuseMaterial
/terial
ansform
TranslateTransform3DOffsetX="75"OffsetY="20"OffsetZ="0"/
/ansform
/GeometryModel3D
/ntent
ansform
Transform3DGroup
ScaleTransform3DScaleX="10"ScaleY="10"ScaleZ="10"x:Name="scaleTransform"/
MatrixTransform3D/
RotateTransform3D
tation
AxisAngleRotation3DAngle="275"Axis="0,0,1"x:Name="myAngleRotationMan"/
/tation
/RotateTransform3D
/Transform3DGroup
/ansform
/ModelVisual3D
/ildren
ansform
Transform3DGroup
MatrixTransform3D/
RotateTransform3D
tation
AxisAngleRotation3DAngle="0"Axis="0,10,0"x:Name="myAngleRotationChair"/
/tation
/RotateTransform3D
/Transform3DGroup
/ansform
/ModelVisual3D
来看一下效果:
到这里就完成了整个的三维场景的建立。
补充元素:动画效果
如果想让整体的三维模型都能动起来,就需要为三维场景添加动画效果。
看一段可以让三维场景按纵轴(中心轴)旋转的代码:
iggers
EventTriggerRoutedEvent="aded"
BeginStoryboard
Storyboard
DoubleAnimation
rgetName="myAngleRotationChair"
rgetProperty="Angle"
From="0"To="360"Duration="0:0:10"
RepeatBehavior="Forever"/
/Storyboard
/BeginStoryboard
/EventTrigger
/iggers
填写如上代码之后就完成了一个最简单的三维动画的处理。
查看本文来源
小孩子脾虚有什么症状河池白癜风治疗医院有哪些开利空调换主板多少钱- 上一篇:乐山市将建茶叶产业全国知名品牌创建示范区节能
- 下一篇:扎克伯格拒绝赴英作证节能