调整 HelixToolKit 模型的外观
Posted
技术标签:
【中文标题】调整 HelixToolKit 模型的外观【英文标题】:Adjusting the HelixToolKit model's appearance 【发布时间】:2021-05-08 16:13:50 【问题描述】:我想在我的一个项目中展示 3D 视图。我有一台设备,想根据来自该设备的数据调整其外观。 (如左、右、前)
可能是一个容易的地方,但我找不到。如何调整模型的外观?
为了更好的解释;在位于右下角的 ViewCube 中单击 L、F、R 等可以进行视图调整。这些调整是如何以及在哪里触发的?如何访问这些设置?
使用我需要的 C# 代码进行设置。
C#代码
//Path to the model file
private const string MODEL_PATH = "C:\\Users\\Desktop\\dice.stl";
SerialPort serial = new SerialPort();
public MainWindow()
InitializeComponent();
ModelVisual3D device3D = new ModelVisual3D();
device3D.Content = Display3d(MODEL_PATH);
// Add to view port
viewPort3d.Children.Add(device3D);
var axis = new Vector3D(0, 0, 1);
var angle = 50;
var matrix = device3D.Transform.Value;
matrix.Rotate(new Quaternion(axis, angle));
device3D.Transform = new MatrixTransform3D(matrix);
/// <summary>
/// Display 3D Model
/// </summary>
/// <param name="model">Path to the Model file</param>
/// <returns>3D Model Content</returns>
private Model3D Display3d(string model)
Model3D device = null;
try
//Adding a gesture here
viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick);
//Import 3D model file
ModelImporter import = new ModelImporter();
//Load the 3D model file
device = import.Load(model);
catch (Exception e)
// Handle exception in case can not file 3D model
MessageBox.Show("Exception Error : " + e.StackTrace);
return device;
【问题讨论】:
【参考方案1】:现在有点老了,但是... 如果我理解,你想改变相机的位置。
以下是如何在 HelixViewport3D 中强制使用相机属性的示例。
提示:您可以使用 HelixViewport3D 的 ShowCameraInfo="True" 来测试相机坐标。
<hx:HelixViewport3D x:Name="MyViewport" ShowCameraInfo="True">
<hx:DefaultLights/>
<hx:CubeVisual3D/>
</hx:HelixViewport3D>
private void Button_Click(object sender, RoutedEventArgs e)
MyViewport.CameraController.CameraLookDirection = new Vector3D(0, -4.7, 0);
MyViewport.CameraController.CameraPosition = new Point3D(0, 4.7, 0);
MyViewport.CameraController.CameraTarget = new Point3D(0, 0, 0);
MyViewport.CameraController.CameraUpDirection = new Vector3D(0, 0, 1);
【讨论】:
以上是关于调整 HelixToolKit 模型的外观的主要内容,如果未能解决你的问题,请参考以下文章
2021-09-20 WPF上位机 30-模型加载(HelixToolKIt使用)
HelixToolkit.WPF Additional DependencyProperty 不工作