gpt4 book ai didi

JavaFX 2D 变换矩阵的仿射变换

转载 作者:行者123 更新时间:2023-12-01 13:57:36 26 4
gpt4 key购买 nike

我正在开始使用 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 仿射变换?

最佳答案

您拥有的是 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 |

关于JavaFX 2D 变换矩阵的仿射变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com