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

问题描述:

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

+0

用什么编程语言? – Matt 2015-02-17 20:06:03

+0

C#是语言,但我认为这是一个更一般的问题,关于解决这两个尺度之间的比例的数学方法:0 - 650和40 - 50. – Aaru 2015-02-17 20:10:27

这只是数学:

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

要看看它是如何工作的,你可以画相比,屏幕值的图表的换算值: chart

(道歉图表的粗陋)

随着你的屏幕的值和定标值,您的转换最终成为ŷ = 0.015 38 x + 40其中x是屏幕值,y是缩放值。

+0

这非常好,我只是想了解线性背后的数学转型。 – Aaru 2015-02-17 20:16:01

+0

@YasinKhalil我添加了一个图表,显示从屏幕值到缩放值的转换,如果这有助于您可视化需要的东西。 – 2015-02-18 09:51:17

其他情况?根据您给我们的数据,它只是一个线性映射,它将零映射到40和650到50.

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