Manfred Rudolf Bihy
Вы можете легко сопоставить точку с int, учитывая следующие ограничения. Компоненты точек x и y также являются int. Диапазон x равен, например, [0..255] , а диапазон y также равен [0..255]. Затем отображение точки на int вычисляется по формуле:
//This code is pure pseudo code
//Declare the range and a point
Range r = new Range(0,255);
Point<int,int> aPoint = new Point<int,int>(50,60,r);
//Here we map the point to an int
int mappedPoint = aPoint.x + aPoint.y * (r.Upper + 1);
//Here we map the int back to a point
int x = mappedPoint % (r.Upper + 1);
int y = mappedPoint / (r.Upper + 1);
Point<int,int> mappedPointFromInt = new Point<int,int>(x, y);
Так что да, отображение действительно возможно, учитывая, что вышеизложенные ограничения соблюдаются. Следует ввести проверку, чтобы убедиться, что отображенная точка будет вписываться в int.
Ваше здоровье!
fjdiewornncalwe
Ницца... Но вы действительно думаете, что ОП поймет это? (+5)
Возможно, добавьте кучу преобразований Int16, 32 и 64 с битовым сдвигом просто для удовольствия.:) (объедините свои ответы и ответы Роба Грейнджера)