Added Tools to coordinate the postion

This commit is contained in:
2025-12-24 13:59:16 +08:00
parent 054ed22de8
commit cefe4a37b7

19
src/utils/Tools.h Normal file
View File

@@ -0,0 +1,19 @@
#pragma once
#include <utility>
#include "Config.h"
namespace Tools {
inline std::pair<int, int> physicalToLogical(float physicalX, float physicalY, const Viewport& viewport) {
std::pair<int, int> logicalPoint = {0 , 0};
// 计算相对于目标矩形的坐标
float normalizedX = (physicalX - viewport.dst.x) / viewport.dst.w;
float normalizedY = (physicalY - viewport.dst.y) / viewport.dst.h;
// 转换为逻辑坐标
logicalPoint.first = static_cast<int>(normalizedX * viewport.logicalWidth);
logicalPoint.second = static_cast<int>(normalizedY * viewport.logicalHeight);
return logicalPoint;
}
}