1

UIImageview をポイント A から B にある程度移動したいと思います。赤と青の矢印は、ドットを動かしたい角度を示しています。

ドットをあるポイントから別のポイントに移動することはできますが、音符をある程度移動するにはどうすればよいですか?

    NSLog(@"cgpoint %@",NSStringFromCGPoint(self.aggressiveDots.frame.origin)); 
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
NSArray *times = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0], nil];
[anim setKeyTimes:times];   
NSArray *values = [NSArray arrayWithObjects:[NSValue valueWithCGPoint:CGPointMake(118, 188.)],
                   [NSValue valueWithCGPoint:CGPointMake(115, 300.)], nil];
[anim setValues:values];
[anim setDuration:6.0]; //seconds    
[self.redDots.layer addAnimation:anim forKey:@"position"];

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

1

UIView を (曲線ではなく) 直線に沿って移動したいので、CAKeyFrameAnimation に必要な点は開始点と終了点の 2 つだけです。実際、必要に応じて [UIView transitionWithView:] を使用することもできます。アニメーション ブロックでフレームを操作するだけです。

  • あなたはすでに出発点を知っています。
  • 終点を計算するには、赤い円の端が白い円と交差する点を見つける必要があります。2 つの円の交点を解く方程式があります。詳細はこちら

トリッキーな代数を避けたい場合は、次のように三角形を描くことができます。

"一般的に、x満たすy必要があります(x - center_x)^2 + (y - center_y)^2 < radius^2"

于 2013-11-04T04:56:41.770 に答える