我查看了 Helix-3d 示例,特别是 Manipulator Example,并尝试在 C# 中重现该功能。
我有一个带有 HelixViewport3D 的窗口和以下代码:
public partial class TransformWindow : Window
{
public TransformWindow()
{
InitializeComponent();
BoxVisual3D box = new BoxVisual3D();
Point3D position = new Point3D(3,4,5);
box.Center = position;
Viewport3D.Children.Add(box);
TranslateManipulator manipulator1 = new TranslateManipulator();
manipulator1.Bind(box);
manipulator1.Color = Colors.Red;
manipulator1.Direction = new Vector3D(1,0,0);
manipulator1.Diameter = 0.1;
//manipulator1.Position = position;
Viewport3D.Children.Add(manipulator1);
}
}
此代码添加了可用于移动框的箭头,但操纵器箭头位于视口的中心。我希望它从盒子里伸出来。如果我最初使用位置来定位它,那么初始位置是正确的,但是当我移动对象时操纵器箭头会保持原位。如何使机械手保持正确定位(始终从物体突出)?