在opengles中2个GLKMatrix4对象之间的角度?

时间:2016-04-14 01:15:54

标签: ios opengl-es

我正在使用http://structure.io/开发一个应用程序。在该应用程序中,当扫描对象完成360度旋转时,它将完成扫描..

从扫描仪我们得到GLKMatrix4的起点和终点。我们想检查起点和终点之间的角度。我们正在使用下面的代码,但这不是正确的方法。任何人都可以知道如何做到这一点......我对opengles很新吗?

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

            }

1 个答案:

答案 0 :(得分:3)

your own docs link之后,您需要从2个矩阵中获取第3行,以找出它们在矢量形式中面向的方向。使用this answer获取第3行,然后通过忽略vec4的最后一个元素将其转换为Vector3(参见图表)。然后你可以尝试GLKMatrix4GetRow来找到两个向量之间的角度,否则只要你自己编写一些示例代码就可以了解它。