CYC- 手势解锁

手势方向指示

#define radiansToDegrees(x) (180.0 * x / pi)
///  旋转方向图片
- (void)showFlagImageView:(UIImageView *)imageView start:(CGPoint)start end:(CGPoint)end {
    // 计算角度
    CGFloat degrees = [self distanceFromPointX:start distanceToPointY:end];
    if (!isnan(degrees)) {
        imageView.hidden = NO;
        // 计算弧度
        CGFloat radians = degrees * pi / 180;
        // 旋转图片
        imageView.transform=CGAffineTransformMakeRotation(radians);

    }
}

/// start 为圆点 end为终点 计算iOS坐标系角度
-(float)distanceFromPointX:(CGPoint)start distanceToPointY:(CGPoint)end{

    CGFloat height = end.y - start.y;
    CGFloat width = end.x - start.x;
    CGFloat rads = atan(height/width);
    CGFloat degrees = radiansToDegrees(rads);

    if (end.x > start.x && end.y < start.y) {
        // 一象限
        degrees += 360;
    } else if (end.x < start.x && end.y < start.y) {
        // 二象限
        degrees += 180;
    } else if (end.x < start.x && end.y > start.y) {
        // 三象限
        degrees += 180;
    } else if (end.x > start.x && end.y > start.y) {
        // 四象限
    } else if (end.y == start.y && end.x > start.x) {
        // x正
        degrees = 0;
    } else if (end.x == start.x && end.y > start.y) {
        // y负
        degrees = 90;
    } else if (end.y == start.y && end.x < start.x) {
        // x负
        degrees = 180;
    } else if (end.x == start.x && end.y < start.y) {
        // y正
        degrees = 270;
    } else {
        // 原点
        degrees = 0;
    }

    return degrees;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值