WPF与3D 模型(二)实现鼠标的视角控制 您所在的位置:网站首页 wpf3d用户交互 WPF与3D 模型(二)实现鼠标的视角控制

WPF与3D 模型(二)实现鼠标的视角控制

2023-09-28 15:43| 来源: 网络整理| 查看: 265

用第三种方法成功导入了我们的模型,但似乎除了显示这一个方向上的固定视角,其他啥也做不了。 那我们在方法三的基础上,做一些改动,使我们的视角可以随著鼠标点击滑动进行一个转动,就如solidworks里面那样。

步骤:

安装两个tool box修改xaml代码在后台代码添加鼠标控制对象修正旋转点

1.安装两个tool box 点击 项目——管理Nuget程序包 在这里插入图片描述 搜索Helix,安装前两个包 在这里插入图片描述 2. 修改XAML码 然后回到我们的xaml码,在前面添加Helix引用

xmlns:local="clr-namespace:Helix_XAML_model"

然后在三个地方修改xaml码,分别是 Viewport3D 改成 helix:HelixViewport3D 并取个名字我这里叫 viewPort3d Viewport3D.Camera 改成 helix:HelixViewport3D.Camera Viewport3D.Children 改成 helix:HelixViewport3D.Children 在这里插入图片描述 此时窗口变成这个样子,右下角多了个视角控制小方块 在这里插入图片描述 3. 在后台代码添加鼠标控制对象 最后去到后台代码处,加上如下代码

viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick);

在这里插入图片描述 完了之后运行程序,我们点击鼠标左键并滑动鼠标,发现模型在动;滚动滚轮,模型也可以缩放。不过不要高兴得太早,我们才成功了一半。我们发现模型一下就飘到了视角以外的地方,这说明我们的视角旋转点需要调整。

4.修正旋转点 视角没有绕着原点旋转的原因是我们没有定义固定旋转点,所以只要固定好旋转点,这个问题就能得到解决。 在后台代码处添加引用

using System.Windows.Media.Media3D; using HelixToolkit.Wpf;

然后在viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick);前面添加代码

viewPort3d.FixedRotationPoint = new Point3D(0, 0, 0); viewPort3d.FixedRotationPointEnabled = true;

第一句是定义好我们的旋转点为坐标原点,第二句是Enable这个旋转点。然后我们再运行代码,点击左键并滑动鼠标,模型旋转变正常了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有