package com.qingyun.service.compare;

/**
 * 坐标转换工具类
 */
public class CoordinateConverter {

    private static final float ORIGINAL_DPI = 72f;

    /**
     * 将基于72 DPI的坐标转换为指定DPI的坐标
     *
     * @param originalCoordinate 原始坐标（基于72 DPI）
     * @param targetDpi          目标DPI（如150）
     * @return 转换后的坐标
     */
    public static float convertCoordinate(float originalCoordinate, float targetDpi) {
        return originalCoordinate * (targetDpi / ORIGINAL_DPI);
    }

    /**
     * 将基于72 DPI的坐标转换为150 DPI的坐标
     *
     * @param originalCoordinate 原始坐标（基于72 DPI）
     * @return 转换后的坐标（基于150 DPI）
     */
    public static float convertCoordinateTo150Dpi(float originalCoordinate) {
        return convertCoordinate(originalCoordinate, 150f);
    }

    /**
     * 批量转换坐标点
     *
     * @param originalCoordinates 原始坐标数组
     * @param targetDpi           目标DPI
     * @return 转换后的坐标数组
     */
    public static float[] convertCoordinates(float[] originalCoordinates, float targetDpi) {
        float[] convertedCoordinates = new float[originalCoordinates.length];
        for (int i = 0; i < originalCoordinates.length; i++) {
            convertedCoordinates[i] = convertCoordinate(originalCoordinates[i], targetDpi);
        }
        return convertedCoordinates;
    }
}
