0

我创建了一个UIImageView 这里的代码

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

现在我有两点需要在视图中移动,所以,它们正在更新..

A点、B点

我得到了他们之间的角度:

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 回答