iOS Vision 坐标 和 UIKit 坐标转换

//vision坐标 转 uikit坐标 vison 坐标 原点左下角 0 - 1,  uikit坐标 原点 左上角 屏幕

/// 转换 rect
/// - Parameters:
///   - oldRect: vision 坐标系 rect
///   - imageSize: uikit image的 size
+ (CGRect)convertRect:(CGRect)oldRect imageSize:(CGSize)imageSize
{
    CGFloat w = oldRect.size.width * imageSize.width;
    CGFloat h = oldRect.size.height * imageSize.height;
    CGFloat x = oldRect.origin.x * imageSize.width;
    CGFloat y = imageSize.height - (oldRect.origin.y * imageSize.height) - h;
    return CGRectMake(x, y, w, h);
}

/// 转换 size
/// - Parameters:
///   - oldSize: vision 坐标系 size
///   - imageSize: uikit image的 size
+ (CGSize)convertSize:(CGSize)oldSize imageSize:(CGSize)imageSize
{
    CGFloat w = oldSize.width * imageSize.width;
    CGFloat h = oldSize.height * imageSize.height;
    return CGSizeMake(w, h);
}

/// 转换 point
/// - Parameters:
///   - oldPoint: vision 坐标系 point
///   - oldRect: vision 坐标系 rect
///   - imageSize: uikit image的 size
+ (CGPoint)convertPoint:(CGPoint)oldPoint oldRect:(CGRect)oldRect imageSize:(CGSize)imageSize
{
    CGRect rect = [self convertRect:oldRect imageSize:imageSize];
    CGFloat x = oldPoint.x * rect.size.width + rect.origin.x;
    CGFloat y = imageSize.height - oldRect.origin.y * imageSize.height - rect.size.height * oldPoint.y;
    return CGPointMake(x, y);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容