2013-04-05 72 views
0

我想镜像我的绘图。如何镜像Matrix3D?

我需要镜像我的Matrix3D为此我认为...但我不知道这样做的线索。

我想是这样的:

var transformation = sceneCamera.TransformationMatrix; 
    var invertedTransformation = transformation; 
    invertedTransformation.Invert(); 

    var trans = Transform3D.Identity.Value * transformation * invertedTransformation; 

但是,这是行不通的。

正如您在图像中看到的那样,报告中的图形必须被镜像。

在此先感谢!

enter image description here

+1

3D中的镜像可以在任何轴上完成,例如,是否要反转X坐标?然后乘以具有-1.0的x-尺度和1.0的y,z尺度的尺度矩阵。 (也就是说,“镜像”是缩放,而不是倒置) – 2013-04-05 07:45:28

+0

谢谢你生病尝试;) – dg90 2013-04-05 07:53:58

+0

我将它添加为一个代码示例的答案 – 2013-04-05 08:08:39

回答

1

“镜报”的模型,你可以反映相机转型,或镜像对象的转变。镜头中的镜像会产生镜像效果。镜像模型将反映世界上的物体,而不管你从哪里看。

要在x方向镜像摄像机,请将摄像机变换乘以一个矩阵,该矩阵具有-1 x分量,其他标度为1。由于镜像可能已将对象移出视野,因此可能必须偏移相机,具体取决于相机变换是如何设置的。

var cameraTrans = sceneCamera.TransformationMatrix; 
cameraTrans.Scale(new Vector3D(-1, 1, 1));