0

私は1つ作成しましたUIImageView ここにコードがあります

capView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:kARROW_CAP_NAME]];
capView.frame = CGRectMake(0, 0, kARROW_H, kARROW_H);
[self addSubview:capView];

これで、ビュー内を移動する必要がある2つのポイントがあります。したがって、それらは更新中です。

PointA、PointB

私はそれらの間の角度を得ました:

CGFloat angleBetweenPoints(CGPoint first, CGPoint second) 
{
    CGFloat height = second.y - first.y;
    CGFloat width = first.x - second.x;
    CGFloat rads = atan(height/width);
    return RADIANS_TO_DEGREES(rads);
}

この角度をUIImageViewに適用すると、継続的に変化します。

ここで私の使用したコード:

capView.transform = CGAffineTransformMakeRotation(arrowAngle);

また

capView.transform = CGAffineTransformRotate(self.transform, arrowAngle);

矢印の角度は、私が上に書いた上記の関数の値です。

見て、助けてください。

4

1 に答える 1

0

答えを得た、とても簡単。

しかし、それでも誰も私に答えをくれません。

capView.transform = CGAffineTransformMakeRotation(RADIANS(M_PI_2 - arrowAngle))

そしてRADINASはここでマクロ定義です、

#define RADIANS(degrees) ((degrees * M_PI) / 180.0)

その一部であるすべての人に感謝します。

于 2012-06-15T06:00:30.483 に答える