2013-10-23 44 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