2016-02-25 3 views
0

я следующий метод:GLKMatrix4Multiply сломана

func printMatrix(m: GLKMatrix4) { 
    var s = "" 
    for i in 0...15 { 
     s += "\(m[i]), " 

     if (i + 1) % 4 == 0 { 
      print(s) 
      s = "" 
     } 
    } 
    print("") 
} 

и некоторый код ниже:

let a = GLKMatrix4Identity 
self.printMatrix(a) 

let b = GLKMatrix4MakeTranslation(3.0, 0.0, 0.0) 
self.printMatrix(b) 

let m = GLKMatrix4Multiply(a, b) 
self.printMatrix(m) 

Наконец я вижу результат:

1.0, 0.0, 0.0, 0.0, 
0.0, 1.0, 0.0, 0.0, 
0.0, 0.0, 1.0, 0.0, 
0.0, 0.0, 0.0, 1.0, 

1.0, 0.0, 0.0, 0.0, 
0.0, 1.0, 0.0, 0.0, 
0.0, 0.0, 1.0, 0.0, 
3.0, 0.0, 0.0, 1.0, 

1.0, 1.0, 0.0, 0.0, 
0.0, 0.0, 0.0, 0.0, 
0.0, 0.0, 0.0, 1.0, 
0.0, 3.0, 0.0, 0.0, 

Похоже, что умножение не работать должным образом. Кто-нибудь может объяснить это или предложить любую подобную библиотеку для матрицы?

ответ

0

Проблема возникает только при тестировании с помощью iOS-симулятора (я тестировал код выше с помощью симулятора). На реальном устройстве GLKMatrix4Multiply работает правильно.

Смежные вопросы