using OpenCvSharp; namespace BetterGenshinImpact.GameTask.Common.Map.Maps.Base; /// /// 独立地图接口 /// 使用 Scene(场景) 命名是和原神内部命名保持一致 /// 每个独立地图都是一个场景 /// public interface ISceneMap { /// /// 获取大地图在整张地图上的位置 /// /// /// Point2f GetBigMapPosition(Mat greyBigMapMat); /// /// 获取大地图在整张地图上的位置(矩形,含缩放信息) /// /// /// Rect GetBigMapRect(Mat greyBigMapMat); /// /// 获取小地图在整张地图上的位置 /// /// /// Point2f GetMiniMapPosition(Mat greyMiniMapMat); /// /// 获取小地图在整张地图上的位置 /// 根据上一个位置的坐标缩小匹配范围,加速获取速度 /// /// /// /// /// Point2f GetMiniMapPosition(Mat greyMiniMapMat, float prevX, float prevY); #region 坐标系转换 /// /// 地图图像坐标系 -> 原神游戏坐标系 /// /// /// Point2f? ConvertImageCoordinatesToGenshinMapCoordinates(Point2f imageCoordinates); Rect? ConvertImageCoordinatesToGenshinMapCoordinates(Rect rect); /// /// 原神游戏坐标系 -> 地图图像坐标系 /// /// /// Point2f ConvertGenshinMapCoordinatesToImageCoordinates(Point2f? genshinMapCoordinates); Rect ConvertGenshinMapCoordinatesToImageCoordinates(Rect? rect); #endregion }