我试图了解如何工作this code。
public class UnPoint
{
public int X, Y;
public float x, y;
public float v;
public static float X_MIN = -1f;
public static float X_MAX = 1f;
public static float Y_MIN = 0f;
public static float Y_MAX = 1f;
public UnPoint(int XX, int YY, int w, int h)
{
X = XX;
Y = YY;
x = (X_MAX-X_MIN) / ( (float)(w-1) ) * ( (float)X ) + X_MIN;
y = (Y_MAX-Y_MIN)/((float)(h-1))*((float)((h-1) - Y)) + Y_MIN;
}
}
什么是 x,y ?我认为,这是某种规范化。但我找不到这种类型。
我很乐意接受任何建议。
答案 0 :(得分:2)
此代码将值XX
从区间[0 w-1]
规范化为区间[-1 +1]
,将值YY
从区间[0 h-1]
归一化到反向位置在[0 1]
区间内。
E.g。它可以将屏幕坐标从左上角的(0,0)标准化到右下角的(w-1,h-1),因此屏幕的左边缘为X_MIN
( - 1) ,屏幕右边缘为X_MAX
(+1),屏幕上边缘为Y_MAX
(1),屏幕下边缘为Y_MIN
(0)。