2016-04-14 18 views
1

http://structure.io/ kullanarak tek bir uygulama geliştiriyorum. Bu uygulamada, nesne 360 ​​derece döndürmeyi tamamladığında, tarama tamamlanacaktır ..Openglelerde 2 GLKMatrix4 nesnesi arasındaki açı?

Tarayıcıdan başlangıç ​​noktası ve bitiş noktası GLKMatrix4 olarak geliyor. Başlangıç ​​ve bitiş noktası arasındaki açıyı kontrol etmek istiyoruz. Aşağıdaki kodu kullanıyoruz, ancak bunu yapmanın doğru yolu değil. Nasıl yapılacağını bilen var mı? Opengles için çok yeni miyim?

case ScannerStateScanning: 
     { 
      // First try to estimate the 3D pose of the new frame. 
      NSError* trackingError = nil; 
      NSString *currentPoseStringMatrix = NSStringFromGLKMatrix4([self lastFrameCameraPose]); 
      NSString *initialPoseStringMatrix = NSStringFromGLKMatrix4([self initialCameraPose]); 
      if ([currentPoseStringMatrix isEqualToString:initialPoseStringMatrix]) { 
       // stop scanning 

      } 

cevap

3

ardından this answer onlar vektör formunda baktığınız yönü bulmak için 2 matrisleri dışına 3 satır almak gerekir. 3. satırı almak için GLKMatrix4GetRow kullanın, ardından vec4'ün son öğesini göz ardı ederek Vector3'e dönüştürün (şemaya bakın). Daha sonra, iki vektör arasındaki açıyı bulmak için this method'u deneyebilirsiniz, aksi takdirde bu kodu kendiniz kodlamak gibi hissetmiyorsanız, yalnızca bazı örnek kodlar için google'ı çevirin.

+0

Teşekkürler! Bunu denedim .. –

+0

öylesine @ 3 Matrix'ten Fonix I (x1, y1, z1) ve B (x2, y2, z2) vektörünü alacağım. Sonra Cos (açı) = A.B/AB ve A = | A | = √ (x12 + y12 + z12). Doğru yöne gidiyorum? –

+0

Evet, önce A ve B'yi birim vektörlere dönüştürürseniz, 'let açısı: Çift = acos (A · B)' yi (uygun nokta çarpımı işleviyle A · B'yi değiştirme) kullanabilirsiniz – Fonix

İlgili konular