我需要旋转和翻译对象。我有一个问题,我只能做其中一个。我使用这段代码:
{{1}}
问题是它只进行最后一次转换。我的意思是,如果我将第二个应用“myRotate”,它会旋转对象,但它不会应用“myTranslate”操作。我需要进行两种转换。
我也在使用HelixToolkit。
答案 0 :(得分:1)
您必须直接使用Transform
字段,而不是替换整个Transform
,即transform.position
,transform.rotation
,transform.localPosition
,{{1 }},transform.localEulerAngles
,transform.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);
注意添加单个变压器的顺序。