通常我会这样做以将一种分辨率转换为另一种分辨率:
int newX = (x / oldResolutionX) * newResolutionX;
但是这次我无法使用它,我无法理解数学(从来没有真正擅长数学,请原谅我)。无论如何,我的分辨率是1280x720,我想将像(720/360)这样的点转换为: Picture of new Resolution
宽度为854,高度为720,因此我不必对y坐标进行转换。但是这里(对我来说)棘手的部分:0不是实际的0. X从-107开始到747结束。你们能解释一下我如何将(720/360)从1280x720转换成这个解析度?提前谢谢,抱歉数学上不好......
答案 0 :(得分:0)
所以,你需要一个从[0 ... 1280]到[-107 ... 747]的线性映射,让y保持不变。
int newX = (int)((x / 1280.0) * 854.0) -107
那么,这里发生了什么?
一些评论:
.0
用于强制浮点类型。(int)
将其强制转换为整数