0

我开始使用 JavaFX,并且正在努力处理转换的方式。我知道您可以向节点添加各种变换,但我希望能够由于用户与节点的交互而累积变换。

我能够为我想要执行的变换创建一个 2D 仿射变换矩阵。例如:

| a b c |
| d e f |
| g h i |

JavaFX 仿射变换定义为:

| mxx  mxy  mxz  tx  |
| myx  myy  myz  ty  |
| mzx  mzy  mzz  tz  |

我的问题是:如何将转换矩阵转换为 JavaFX 仿射转换?

4

1 回答 1

1

您拥有的是 2D 空间的投影变换矩阵,而 JavaFX 期望 3D 空间的投影变换矩阵。

假设您没有任何投影(因为您需要 2D仿射变换),您的矩阵应如下所示:

| mxx mxy tx |
| myx myy ty |
|  0   0   1 |

对于您拥有的其他参数mzz = 1mxz = myz = mzx = mzy = tz = 0

因此,JavaFX 矩阵(使用您的原始符号)应如下所示:

| a b 0 c |
| d e 0 f |
| 0 0 1 0 |
| 0 0 0 1 |

编辑:我认为当您进行非仿射变换时,JavaFx 矩阵应如下所示:

| a b 0 c |
| d e 0 f |
| 0 0 1 0 |
| g h 0 i |
于 2013-10-23T13:33:57.437 回答