0

アプリの上に半透明の画像を含むビューがあり、そのビューに 3D キューブ (または 3D に似たキューブ - 3 つのポリゴンでできている) を表示する必要があります。
立方体の各面はタッチ可能で、一度タッチすると識別されます。つまり、ID を使用してイベントを発生させるか、独自のイベントを発生させるたびにキューブを回転させます...どうすればそれを達成できますか?

私が求めているものを視覚化しようとします:

だから、この示された立方体から行くために... ここに画像の説明を入力

赤い顔に触れた後 ここに画像の説明を入力

このコードは、イベントを発生させる単純なタッチ可能なボタンを示しているだけです。

@implementation cubeView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

        [self setBackgroundColor:[UIColor clearColor]];
        UIImageView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Label.png"]];
        // For RETINA DISPLAY create an image named Label@2x.png and make it twice big in x and in y
        [self addSubview:view];
        UILabel * lbl = [[UILabel alloc] initWithFrame:CGRectMake(20,20,100,30)];
        [lbl setText:@"Hello"];
        [lbl setBackgroundColor:[UIColor clearColor]];
        [self addSubview:lbl];
    }
    return self;
}

ビューコントローラー

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIView *container = [[[UIView alloc] initWithFrame:CGRectMake(100, 0, 400, 200)]  
autorelease];
    [self.view addSubview:container];
    container.alpha = 0.2;
    UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
    b.frame = CGRectMake(0, 0, 201, 98);
    cubeView *cb = [[[SS alloc] initWithFrame:CGRectMake(0, 0, 201, 98)] autorelease];
    [b setImage:[self imageWithView:cb] forState:UIControlStateNormal];
    [container addSubview:b];
    [b addTarget:self action:@selector(clicked:)forControlEvents:UIControlEventTouchUpInside];



}
4

1 に答える 1

0

あなたの質問が正確に何であるかはわかりませんが、立方体を回転させる方法を見つけたい場合は、そのエッジと頂点を指定する座標が必要になります。私のプロジェクトには、回転行列を使用して最終的な座標を見つける回転キューブがあります。回転する必要がある角度をフィードする必要があります。それを「回す」には、好きな速度/精度のステップで角度を通過し、「ビュー」キューブの連続する呼び出しの間に特定の一時停止を維持する必要があります徐々に回転するように機能します。「パッチ」コマンドを使用して、キューブがmatlabで機能することを示しています.ios devに同様の機能があるかもしれません。

于 2012-05-30T21:47:36.160 に答える