从屏幕坐标转换为任意比例

时间:2015-02-17 20:04:56

标签: math coordinates scaling

我有一些屏幕坐标,最大宽度为650;所以0 - 650。 如果我有一些任意比例,从40到50,其中40是最低点,50是最高点。如何转换说相对于比例的屏幕坐标为430?

2 个答案:

答案 0 :(得分:1)

任何其他条件?基于你给我们的东西,它只是一个线性映射,它将零映射到40和650到50。

考虑到这一点,新坐标中的每个单位在旧坐标中等于65。然后430/65 = 6.61,这意味着430被映射到40 + 6.61 = 46.61

答案 1 :(得分:0)

这只是数学:

static double ScreenToScaled(int screenMin, int screenMax, int scaledMin, int scaledMax, int screenValue)
{
    return (double)(screenValue - screenMin) / (double)(screenMax - screenMin) * (scaledMax - scaledMin) + scaledMin;
}

要查看其工作原理,您可以绘制与缩放值相比的屏幕值图表: chart

(对图表粗糙的道歉。)

根据您的屏幕值和缩放值,您的转化结果为 y = 0.01538 x + 40其中 x 是屏幕value和 y 是缩放值。