0

iOS タブレット用の拡張現実アプリを作成しようとしています。このために、AVFoundationクラスを使用して、ビデオをカメラから画面に変換します。拡張オブジェクトは単純UILabelsに「空を飛んでいる」ものです。ラベルが目の前にあるように見え、タブレットを回転させても位置を保存する必要があります。いつものようCMMotionManagerに、デバイスのジャイロスコープ データをキャプチャするために使用しています。私の問題は、デバイスの回転クォータニオンをフライングに正しく適用できないことです。UILabel秒。ラベルは独自の軸を中心に回転していますが、「タブレットの軸を中心に」回転する必要があります。これを数学的に説明するにはどうすればよいですか?今のところ、タブレットの周りにある架空の球体のアイデアしかありません。ラベルはこの球体に配置されており、タブレットを回転させると、この架空の球体は同じ軸を中心に反対方向にラベルを付けて回転します。サードパーティのライブラリを使用したくありません。

4

2 に答える 2

0

私は同様のアプリに取り組んできました。しかし、私の場合、シナリオは少し異なりました。UIImageViewの代わりに使用していましたUILabel。私がしたことは、別のものUIViewを作成し、その背景をデフォルト/透明にすることでした。そして、そのビューに、UIImageView回転時にUIView回転するものを配置しましたが、CameraViewUIViewは回転に問題を引き起こしていました。幸いなことに、私の要件に従って、デバイスの向きを強制的に横向きに保つ必要があります。私が使用したもの:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeRight;
}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

だから透明を追加しUIViewます。次に、問題がまだ残っているかどうかを確認UIInterfaceOrientationMaskし、考えられる 4 つの方向すべてを定義して、それが機能するかどうかを確認します。

于 2014-12-28T07:04:13.243 に答える
0

最後に、このライブラリを使用することにしました: https://github.com/antonholmquist/rend-ios。純粋な UIKit でこのタスクを実行するのは簡単ではありません。

于 2015-01-30T19:59:35.987 に答える