将 X 坐标从一种分辨率转换为另一种分辨率

Convert X Coordinate from one Resolution to another

本文关键字:分辨率 一种 转换 另一种 坐标      更新时间:2023-10-16

通常我会这样做以从一种分辨率转换为另一种分辨率:

int newX = (x / oldResolutionX) * newResolutionX;

但是这次我不能使用它,我无法理解数学(从来没有真正擅长数学,请原谅我(。无论如何,我的分辨率是 1280x720,我想将像 (720/360( 这样的点转换为: 新分辨率的图片

宽度是 854,高度是 720,所以我不必对 y 坐标进行转换。但这是(对我来说(棘手的部分:0 不是实际的 0。X 从 -107 开始,到 747 结束。你们能向我解释一下如何将 (720/360( 从 1280x1280 转换为此分辨率吗?提前感谢,很抱歉数学不好...

因此,您需要从 [0...1280] 到 [-107...747] 的线性映射,保持 y 不变。

int newX = (int)((x / 1280.0) * 854.0) -107

那么,这里发生了什么?

  • x 将在 0 到 1280 之间变化。
  • 如果 x == 0:(0/1280( * 854 将为 0,结果等于 -107。
  • 如果 x == 1280:(1280
  • /1280( * 854 = 854:结果将为 747

一些评论:

  • .0用于强制使用浮点类型。
  • (int)是将其转换回整数
相关文章: