OpenGL ES 2.0 を使用して、x、y、z 軸を中心に回転する特定の視点で表示する 3 次元の立方体を表示しています。
@interface OpenGLView : UIView
OpenGLView *openGLRotate = [[OpenGLView alloc] initWithFrame:screenBounds];
[openGLRotate setupDisplayLink:NO Face:face Direction:direct];
- (void)setupDisplayLink:(BOOL)bFlag Face:(CubeFace)f Direction:(CubeDirection)d
{
CADisplayLink* displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(renderRotate:)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
x、y、z 軸ではなく、面に垂直な軸を中心に立方体を回転させたいと考えています。
立方体のデフォルトのパースペクティブが x、y、z 軸を中心に回転しているのを見て、特定の面を基準にして軸を中心に回転するには、x、y、z 軸の値を同時に変更して、見ている効果を達成する必要があります。為に。
// code in renderRotate
//[modelView rotateBy:CC3VectorMake(20, -45, -20)]; // default perspective
[modelView rotateBy:CC3VectorMake(20 + x, -45 + y, -20 + z)];
ベクトルと行列、四元数とオイラー角について読んだことがありますが、混乱が減るどころか、ますます混乱しています。
回転の x、y、z 値を決定する方法が正確にはわかりません。これらの値を計算する方法についてのガイダンスをいただければ幸いです。または、私が取るべき別のアプローチはありますか?