2012-02-27 3 views
0

Я новичок в iOS-графике и анимации и хотел бы знать, как выполнить эффект вращения изображения изображения на изображении, как показано на видео ниже.импульс вращения изображения в iOS

video

Даже когда не щелкнул изображения имеют хороший взмах.

Спасибо.

+1

Начните с вычеркивания вашей старой книги по физике –

+1

Лично я бы использовал физический движок. Сначала может показаться сверху, но мне самому удалось написать физику! –

+0

Джеймс, вы используете Бурундук или другой физический движок? –

ответ

1

Это довольно пятно. Он вращает вид вокруг точки (центр вершины), а затем меняет время, необходимое для того, чтобы вращаться алгоритмически, при необходимости меняя направление. Я не могу дать вам код, но я думаю, что если вы посмотрите эту видео-демо от профессора Хегарти, у вас появятся необходимые инструменты. Он вращается вокруг точки за пределами вида - вы можете просто вращаться вокруг края обзора (и не сжимать вид). Проверьте это:

Часть 1: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/node/291

Часть 2: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/node/293

Вы определенно хотите, чтобы загрузить видео прочь ITunes U (бесплатно), так как есть много объяснений.

Успехов,

Damien

0

Я проверил с автором этого и был проинформирован о том, что он был реализован с использованием библиотеки физики Box2D. Я собираюсь сделать это. Спасибо за ответы!

0
//this code can be used to rotate an image having both back and front 

    rotate = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [rotate addTarget:self action:@selector(rotate1)forControlEvents:UIControlEventTouchDown]; 
     rotate.frame = CGRectMake(137.5, 245, 45, 46); 
     [rotate setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"viewing.png"]] forState:UIControlStateNormal]; 
     [self.view addSubview:rotate]; 

    int count; 
    count=0; 

    -(void)rotate1 
    { 


     count=count+1; 
     NSLog(@"rotate"); 
     [UIView transitionWithView:imagecircle // use the forView: argument 
          duration:1   // use the setAnimationDuration: argument 
          options:UIViewAnimationOptionTransitionFlipFromLeft 
     // check UIViewAnimationOptions for what options you can use 
         animations:^{   // put the animation block here 
          imagecircle.image = imagecircle.image; 
         } 
         completion:NULL]; 

     if(count%2==0) 
     { 
      NSLog(@"image.str.%@",appDelegate.imageNameString); 
      [imagecircle setImage:[UIImage imageNamed:appDelegate.imageNameString]]; 
      [labellocation removeFromSuperview]; 
      [labeldate removeFromSuperview]; 
      [self.imagecircle addSubview:labelfrom]; 

     } 
     else 
     { 
      [imagecircle setImage:[UIImage imageNamed:@"TGP_BACK.png"]]; 
      [labelfrom removeFromSuperview]; 
      [self.imagecircle addSubview:labellocation]; 
      [self.imagecircle addSubview:labeldate]; 
     } 



    } 
Смежные вопросы