Math Visual Basic数字映射

Math Visual Basic数字映射,math,vb6,Math,Vb6,我正在编写一个程序,将屏幕映射的像素转换为实际分辨率。例如,屏幕上的坐标是从(0,0)[左上]到(1,1)[右下]。我的电脑显示器的分辨率是1600x900。因此,我需要一种方法将(0,0)映射到(0X0)和(1,1)映射到(1600x900),以及将(0.56,0.7)映射到分辨率转换为的任何对象。有人知道怎么做吗 您只需按如下方式缩放它们: 从实际坐标转到坐标: x=x*实际最大值/坐标最大值 因此,在您的示例中,使用0.333的y坐标 x=0.333*900/1=300 从坐标到实际坐标:

我正在编写一个程序,将屏幕映射的像素转换为实际分辨率。例如,屏幕上的坐标是从(0,0)[左上]到(1,1)[右下]。我的电脑显示器的分辨率是1600x900。因此,我需要一种方法将(0,0)映射到(0X0)和(1,1)映射到(1600x900),以及将(0.56,0.7)映射到分辨率转换为的任何对象。有人知道怎么做吗

您只需按如下方式缩放它们:

从实际坐标转到坐标:

x=x*实际最大值/坐标最大值

因此,在您的示例中,使用0.333的y坐标

x=0.333*900/1=300

从坐标到实际坐标:

x=x*坐标最大值/实际最大值

在您的示例中,使用y坐标300

x=300*1/900=0.333


谢谢你的回答,我还有一个问题,如果最小值不是(0,0),怎么办?在实际的was(0.14,0.15)到(1,1)中,这将如何改变等式?@Mark,很抱歉错过了你的评论。尝试newx=lowactualmin+(highcoordmax-lowcoordmin)/(highactualmax-lowactualmin)。