当前位置:首页 >> 行情

使用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

填写如上代码之后就完成了一个最简单的三维动画的处理。

查看本文来源

小孩子脾虚有什么症状
河池白癜风治疗医院有哪些
开利空调换主板多少钱
友情链接