我正在使用的第三方算法是创建以下矩阵
| 355,78 : -12,33 : ,02 : ,02 |
| 39,69 : 378,26 : ,08 : ,08 |
| -145,43 : -61,32 : -,49 : -,49 |
| 75610,61 : 25380,20 : 385,12 : 386,92 |
如果我将FrameworkElement用作投影,那么将它放在正确的位置:
player.Graphic.Projection = new Matrix3DProjection { ProjectionMatrix = m };
但是这也会旋转和扭曲元素,我只需要将元素移动到正确的2D坐标。
我正在使用以下代码:http://www.gamespp.com/tutorials/matrixTransformationTutorial04.html
double x0 = 100, y0 = 100, z0 = 0;
var x1 = x0 * m.M11 + y0 * m.M12 + z0 * m.M13 + m.OffsetX;
var y1 = x0 * m.M21 + y0 * m.M22 + z0 * m.M23 + m.OffsetY;
z0是不必要的,因为它总是为零,但我把它留在那里以防万一。
产生x1 = 109954,75和y1 = 67175,64,这显然是错误的。它应该生成类似于mx = 298和my = 162的东西(这是应用投影时的鼠标位置)
如何使用Matrix3D转换X,Y坐标?
由于