我经常遇到这个问题,但我不确定我是否已经确定了制定它的最佳方法。我认为它需要一个互惠的...
基本上,如果 x 为 0,则 y 应为 maxY,如果 x 为 200(或某个 maxX),则 y 应为 minY。那么,如果给定 x,计算 y 的正确通用公式是什么?
我正在使用objective-c,但问题是数学问题。
可以使用点斜率形式找到正确的公式。
y - y1 = m(x - x1)
x1 = 0, y1 = maxY
x2 = 200, y2 = minY
m = (x2 - x1) / (y2 - y1) = 200 / (minY - maxY)
y - maxY = 200 / (minY - maxY) * (x - 0)
y = 200 / (minY - maxY) * x + maxY
从数学上讲,就是这样:
y = minY + (maxX - x) / maxX * (maxY - minY)
为了防止 int 被截断:
y = minY + (double)(maxX - x) / maxX * (maxY - minY)