【发布时间】:2016-01-19 07:13:27
【问题描述】:
我需要旋转和平移一个对象。我有一个问题,我只能做其中之一。我使用此代码:
RotateTransform3D myRotate = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), Convert.ToDouble(180)), new Point3D(0, 0, 0));
TranslateTransform3D myTranslate = new TranslateTransform3D(0, 0, 100);
ModelVisual3D device3D2 = new ModelVisual3D();
device3D2.Content = Display3d(MODEL_PATH2);
device3D2.Transform = myRotate;
device3D2.Transform = myTranslate;
viewPort3d.Children.Add(device3D2);
问题在于它只进行最后一次转换。我的意思是,如果我应用“myRotate”第二个,它会旋转对象,但不会应用“myTranslate”操作。我需要进行两种转换。
我也在使用 HelixToolkit。
【问题讨论】:
-
我对该框架一无所知,但很明显问题是您正在设置
Transform属性,然后对其进行更改。所以当它被使用(通过视口)时,只有最后一个被使用。必须有一种方法可以组合转换对象或创建集合。 -
是的,你是对的,谢谢!但是...任何想法如何改进? :)
-
看了一眼,但没有看到任何明显的东西。就我个人而言,我可能会使用 Intellisense 并寻找看起来可能有帮助的类/方法,然后尝试它们
标签: c# rotation transform translation helix-3d-toolkit