私はwikitudeを使用していますので、認識されたマーカーの画面座標を取得する必要があります。私はGLKMatrix4にprojectionViewMatrixを変換していると私は、私は複数のサイトで見つけたこのコードを試してみた:ワールド座標を画面に表示
let point = Point3D(x: m.m.12, y: m.m.13, z: m.m.14)//m is the matrix
let x = round(((CGFloat(point.x)+1)/2)*self.view.frame.width)
let y = round(((1-CGFloat(point.y))/2)*self.view.frame.height)
事は、私がビューよりもマーカーを中心ならば、私は計算されたもの座標で移動してるということですも中心に置かれています。マーカーを動かすと、ビューは正しい方向に動きますが、動きが速すぎてマーカーには残りませんが、マーカーを移動した方向に画面からはみ出しています。
編集: これは私がポインタwikitudeを変換するために使用するコードですGLKMatrix4に私たちを提供しています。テストなし
-(instancetype)initWithCArray:(const float *)pointer{
self = [super init];
if(self != nil){
glkMatrix = GLKMatrix4Identity;
memcpy(glkMatrix.m, pointer, 16*sizeof(float));
}
return self;
}
いくつかのコード(mの作成)と、達成したいと思うwharのいくつかの情報(どのマーカー; touchイベント?)を投稿してください。 – shallowThought
私は行列を扱うクラスを持っています。 initメソッドではUnsafePointerが使用され、GLKMatrix4を返すgetMatrix()メソッドがあります。私は約1年前から私がどこにいたのか分からない。私は既にそのクラスをOpenGL/metalとwikitudeプロジェクトで成功を収めて使ってきました。マーカーはwikitudeが認識する単なる画像です。私は画面上の私のマーカーに従うビューを持っているが、私のUIと後でビューを統合する必要があるので、今回はOpenGL/metalを使うことができない。 (アニメーションとウインドウへの変換、ios要素を含む)touchevents。 –
kemkriszt
ええ、私はちょうど私のコンピュータに持ってきました。そのポインタを変換するコードを追加しましたwikitudeはGLKMatrix4に私たちを提供します – kemkriszt