从屏幕坐标转换到任意比例
我有一些屏幕坐标,最大宽度为650;所以0 - 650. 如果我有一些从40到50的任意比例,其中40是最低点,50是最高值。我如何转换屏幕坐标相对于尺度的430?从屏幕坐标转换到任意比例
这只是数学:
static double ScreenToScaled(int screenMin, int screenMax, int scaledMin, int scaledMax, int screenValue)
{
return (double)(screenValue - screenMin)/(double)(screenMax - screenMin) * (scaledMax - scaledMin) + scaledMin;
}
要看看它是如何工作的,你可以画相比,屏幕值的图表的换算值:
(道歉图表的粗陋)
随着你的屏幕的值和定标值,您的转换最终成为ŷ = 0.015 38 x + 40其中x是屏幕值,y是缩放值。
这非常好,我只是想了解线性背后的数学转型。 – Aaru 2015-02-17 20:16:01
@YasinKhalil我添加了一个图表,显示从屏幕值到缩放值的转换,如果这有助于您可视化需要的东西。 – 2015-02-18 09:51:17
其他情况?根据您给我们的数据,它只是一个线性映射,它将零映射到40和650到50.
考虑到这一点,新坐标中的每个单位等于旧坐标中的65。然后65分之430= 6.61,这意味着430映射到40 + 6.61 = 46.61
用什么编程语言? – Matt 2015-02-17 20:06:03
C#是语言,但我认为这是一个更一般的问题,关于解决这两个尺度之间的比例的数学方法:0 - 650和40 - 50. – Aaru 2015-02-17 20:10:27