世界坐标为浮动到块和像素坐标

时间:2016-01-30 06:13:29

标签: c++ algorithm grid

我现在不知道如何计算块内的像素坐标。 我从世界坐标中计算出这样的块:

float xCoord = ..., yCoord = ...; //Can be positive and negative.
int xChunk = static_cast<int>(std::floor((xCoord + WORLD_OFFSET_X_F) / CHUNK_XY_SIZE_F));
int yChunk = static_cast<int>(std::floor((yCoord + WORLD_OFFSET_Y_F) / CHUNK_XY_SIZE_F));

如果它们是整数,那么很容易计算块内的像素坐标。例如:

int xCoord = ..., yCoord = ...; //Can be positive and negative.
int xPixel = (xCoord + WORLD_OFFSET_X_I) % CHUNK_XY_SIZE_I; Or by using the AND(&) operator.
int yPixel = (yCoord + WORLD_OFFSET_Y_I) % CHUNK_XY_SIZE_I;

这不能通过使用浮点数来工作。 如何使用浮点数完成相同的结果?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以完全相同的方式做到这一点。您只需使用浮点模而不是整数。看看fmod