4D 벡터를 제한 길이로 변환하는 방법을 알아 내려고하고 있습니다. 그러나 벡터와 결과로 나오는 길이에는 제한이 있습니다. 벡터 자체는 4 개의 정수로 구성됩니다. 첫 번째 정수는 Java의 기능 내에서 사용할 수 있습니다 (Integer.MIN_VALUE부터 Integer.MAX_VALUE까지). 두 번째 및 네 번째 정수는 항상 -2999984에서 2999984 사이에 포함됩니다. 마지막으로 세 번째 값은 항상 0에서 255 사이입니다 (다시 말하지만 둘 다 포함).4D 벡터를 Long으로 변환
([Integer min - Integer max], [-2999984 - 2999984], [0 - 255], [-2999984 - 2999984])
벡터 오래 내가 알고 있어요
-824629322721380016 사이 824629339968358064.로 변환 할 필요가있는 1-1 일치하는 결과 함수가 아마이 없음 : 그래서 다음 형식을 따릅니다 ,하지만 가능한 한 충돌을 최소화 할 수있는 함수를 찾으려고합니다.
궁금한 점이 있다면 벡터와 긴 경계는 임의적이지 않습니다. 내가 Minecraft로 포스트에 태그를 붙이자, 나는 이유를 설명해야한다. 하나의 차원에서 특정 blockpos를 다른 blockpos와 일치 시키려고합니다. 4D 벡터는 [차원 id, x pos, y pos, z pos]이고 결과 long은 BlockPos (BlockPos # fromLong)의 직렬화 된 형식입니다. 내 문의 사항을 촉발시킨 this 포럼 게시물을 볼 수 있습니다. 내 queston 반드시 MC 특정 있기 때문에 그것은 주로 수학 및 코드 기반으로 여기에서 부탁 해요.
이 기능을 쉽게 되돌릴 수 있어야합니까? 또는 그것은 편도 일 수 있는가? –
아니요, 기능을 되돌릴 필요가 없습니다. 위의 제한 사항으로 벡터가 long으로 변환되는 한. – TheMasterGabriel