2011-07-13 45 views
0

我正在编写一个程序,将屏幕映射像素转换为实际分辨率。作为屏幕上的例子,坐标是从(0,0)[左上]到(1,1)[右下]。我的电脑显示器的分辨率为1600x900。所以我需要一种方法来映射(0,0)到(0X0)和(1,1)到(1600x900)以及诸如(0.56,0.7)之间的所有内容,无论它转换为分辨率。有没有人知道一种方法来做到这一点?Visual Basic编号映射

+0

VB.NET,VB6或VBA? – JohnFx

+0

我使用VB6这 –

回答

2

你只需要扩展他们是这样的:

从实际去坐标为:

X = X * actualmax/coordmax

所以在你的例如,使用0.333的y坐标

x = 0。 333 *1分之900= 300

从坐标转化为实际:

X = X * coordmax/actualmax

所以在你的榜样,用300的y坐标

x = 300 * 1/900 = 0.333

+0

谢谢你的答案,我还有一个问题,如果最小值不是(0,0)?在实际中(0.14,0.15)到(1,1)如何改变方程? –

+0

@Mark,对不起,错过了您的评论。尝试newx = lowactualmin +(highcoordmax - lowcoordmin)/(highactualmax - lowactualmin)。 –