C# 将Model3DGroup变换两次

C# 将Model3DGroup变换两次,c#,wpf,C#,Wpf,我需要两次变换Model3DGroup(一次设置位置,一次设置旋转)。我试过这个: var model = ModelImporter.Load(gameAssetPath); model.Transform = new TranslateTransform3D( placedObject.SpawnCoordinates.X, placedObject.SpawnCoordinates.Y, placedObject.SpawnCoordinat

我需要两次变换Model3DGroup(一次设置位置,一次设置旋转)。我试过这个:

var model = ModelImporter.Load(gameAssetPath);
model.Transform = new TranslateTransform3D(
        placedObject.SpawnCoordinates.X,
        placedObject.SpawnCoordinates.Y,
        placedObject.SpawnCoordinates.Z);
var modelRotation = new Model3DGroup();
modelRotation.Children.Add(model);
modelRotation.Transform = new RotateTransform3D(new AxisAngleRotation3D(), placedObject.SpawnCoordinates.Roll, placedObject.SpawnCoordinates.Pitch, placedObject.SpawnCoordinates.Yaw);
那是不可能的。我在谷歌等网站上搜索过,似乎什么也找不到。

你需要一门课程来完成这个任务

该类将组合您的转换

var model = ModelImporter.Load(gameAssetPath);
var modelRotation = new Model3DGroup();
modelRotation.Children.Add(model);
var t1 = new TranslateTransform3D(
        placedObject.SpawnCoordinates.X,
        placedObject.SpawnCoordinates.Y,
        placedObject.SpawnCoordinates.Z);
var t2 = new RotateTransform3D(
         new AxisAngleRotation3D(), 
        placedObject.SpawnCoordinates.Roll, 
        placedObject.SpawnCoordinates.Pitch, 
        placedObject.SpawnCoordinates.Yaw);
var tg = new TransformGroup();
tg.Children.Add(t1);
tg.Children.Add(t2);
modelRotation.Transform = tg;

到底出了什么问题?这取决于你要实现什么,但在翻译之前应用旋转很可能会给你想要的。只链接的答案不是好答案。最好在这里总结一下页面(并使用实际链接而不是谷歌链接)。很好,链接给了我所需要的一切:)@Alexred-现在可能是这样,但是如果链接到的页面消失了,那么答案就没用了。原来我需要
Transform3DGroup
,但谢谢你为我指明了正确的方向。我会尽快把这个标记为答案。