From cefe4a37b7469a7d6e1295318e47317f01152310 Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Wed, 24 Dec 2025 13:59:16 +0800 Subject: [PATCH] Added Tools to coordinate the postion --- src/utils/Tools.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/utils/Tools.h diff --git a/src/utils/Tools.h b/src/utils/Tools.h new file mode 100644 index 0000000..c45d47e --- /dev/null +++ b/src/utils/Tools.h @@ -0,0 +1,19 @@ +#pragma once +#include +#include "Config.h" + +namespace Tools { + inline std::pair physicalToLogical(float physicalX, float physicalY, const Viewport& viewport) { + std::pair 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(normalizedX * viewport.logicalWidth); + logicalPoint.second = static_cast(normalizedY * viewport.logicalHeight); + + return logicalPoint; + } +} \ No newline at end of file