旋转并平移对象

时间:2015-10-20 14:48:42

标签: c# rotation transform translation helix-3d-toolkit

我需要旋转和翻译对象。我有一个问题,我只能做其中一个。我使用这段代码:

{{1}}

问题是它只进行最后一次转换。我的意思是,如果我将第二个应用“myRotate”,它会旋转对象,但它不会应用“myTranslate”操作。我需要进行两种转换。

我也在使用HelixToolkit。

2 个答案:

答案 0 :(得分:1)

您必须直接使用Transform字段,而不是替换整个Transform,即transform.positiontransform.rotationtransform.localPosition,{{1 }},transform.localEulerAnglestransform.scale

transform.localScale

答案 1 :(得分:0)

您需要使用Transform3DGroup对象。然后,您可以添加不同的转换:

Transform3DGroup  myTransformer = new Transform3DGroup;  
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);
myTransformer.Children.Add(myRotate);
myTransformer.Children.Add(myTranslate);
ModelVisual3D device3D2 = new ModelVisual3D();
device3D2.Content = Display3d(MODEL_PATH2);
device3D2.Transform = myTransformer;
viewPort3d.Children.Add(device3D2);

注意添加单个变压器的顺序。