2013-10-23 46 views
0

我正在开始使用JavaFX,并且一直在处理变换的方式。我知道你可以向节点添加各种变换,但是我希望能够由于用户与节点的交互而积累变换。来自2D转换矩阵的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的仿射变换?

回答

1

你有什么是一个二维空间的投影变换矩阵和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 | 
+0

[齐次坐标](http://en.wikipedia.org/wiki/Transformation_matrix#Other_kinds_of_transformations) – mrak