Я использую Helix3D.WPF Библиотека для рисования трехмерных геометрических сеток внутри окна просмотра Helix3D, и я использую перспективную камеру для изменения перспективы вида.
Я не могу нарисовать динамические оси, которые могли бы адаптироваться к перспективе вида при изменении перспективы камеры (поворот, панорамирование или масштабирование), как те, которые нарисованы на трехмерном графике в Matlab.
Здесь , здесь и здесь - изображения, демонстрирующие, как Matlab делает это.
Вот код XAML моего окна WPF
<Window x:Class="CancerDoseCalculation.Views.Plot3DWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CancerDoseCalculation.Views"
xmlns:helix="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf"
mc:Ignorable="d"
Title="Plot3DWindow" Height="700" Width="Auto">
<helix:HelixViewport3D
x:Name="viewport"
Grid.Row="1"
ZoomExtentsWhenLoaded="True"
PanGesture="LeftClick"
ShowViewCube="True"
ShowCameraInfo="True"
ShowCameraTarget="True"
ShowCoordinateSystem="True"
ZoomSensitivity="2"
Width="600"
Height="600"
Grid.Column="1" Background="#FF0F0B0B">
<helix:HelixViewport3D.Camera>
<PerspectiveCamera x:Name="perspectiveCamera" LookDirection="1,1,-1" UpDirection="0,0,1" FieldOfView="40"/>
</helix:HelixViewport3D.Camera>
<ModelVisual3D x:Name="ModelVisual3D">
<ModelVisual3D.Content>
<Model3DGroup x:Name="Model3DGroup">
<DirectionalLight Color="White" Direction="-1,1,-1" />
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 10,0,0 10,10,0 0,10,0 0,0,10
10,0,10 10,10,10 0,10,10"
TriangleIndices="0 1 3 1 2 3 0 4 3 4 7 3 4 6 7 4 5 6
0 4 1 1 4 5 1 2 6 6 5 1 2 3 7 7 6 2"/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Red"/>
</GeometryModel3D.Material>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<helix:DefaultLights />
</helix:HelixViewport3D>