gpt4 book ai didi

swift - Swift 中的 GLK 四元数

转载 作者:可可西里 更新时间:2023-11-01 01:43:28 25 4
gpt4 key购买 nike

尝试重写为 Myo 编写的 Objective-C 代码我遇到了 GLKQuaternion 类,它是一个联合并且在 Swift 中似乎不受支持(Using GLKMath from GLKit in Swift)。

我正在寻找的是一个解决方法来让它工作。也许是在 ObjectiveC 中完成的带有 Math 的混合应用程序,因此我可以访问这些属性。我有哪些选择?

最佳答案

最后使用了一个桥接文件并创建了一个小的包装层,以允许我从 Swift 访问我想要的数据。我将其称为 polyfill,类似于我们在网络上用于增强旧浏览器功能的内容。

code is available on github .特别this commit会很有趣,因为它显示了需要做什么。

Polyfill.h

@interface OrientationData: NSObject
@property (nonatomic) TLMAngle *pitch;
@property (nonatomic) TLMAngle *yaw;
@property (nonatomic) TLMAngle *roll;
@end

@implementation OrientationData
@end

@interface GLKitPolyfill: NSObject
+ (OrientationData *) getOrientation:(TLMOrientationEvent *)orientationEvent;
@end

Polyfill.m

+ (OrientationData *) getOrientation:(TLMOrientationEvent *)orientationEvent {
TLMEulerAngles *angles = [TLMEulerAngles anglesWithQuaternion:orientationEvent.quaternion];

OrientationData *result = [OrientationData new];
result.pitch = angles.pitch;
result.yaw = angles.yaw;
result.roll = angles.roll;

return result;
}

ViewController.swift

let angles = GLKitPolyfill.getOrientation(orientationEvent)
let pitch = CGFloat(angles.pitch.radians)
let yaw = CGFloat(angles.yaw.radians)
let roll = CGFloat(angles.roll.radians)

Apples Mix & Match guide给出了关于如何使 Obj-C 与 Swift 一起工作以及反之亦然的好技巧。

关于swift - Swift 中的 GLK 四元数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26571371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com