如何将Vector3F舍入为整数向量?

时间:2012-08-19 21:54:35

标签: java

我目前正在制作一个程序来构建和删除块。这很简单但很有趣。我已经走得很远,但遇到了障碍。

到目前为止,我有它,所以当我点击时,它会在我正在看的位置创建一个块,无论是在另一个块还是在地面上。这是通过使用来自相机的光线跟踪并在由光线和另一个物体之间的碰撞产生的Vector3F处创建块来实现的。我不能做的是围绕Vector3F,使数字都是单个数字整数。有谁知道如何实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以使用Math.round(): http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(float)

示例:
1:

// It will round the floats in Vector3F and leave the results as floats
Vector3F vect = new Vector3F(2.3f, 1.114124f, 0f);
vect.x = Math.round(vect.x); // 2f
vect.y = Math.round(vect.x); // 1f
vect.z = Math.round(vect.x); // 0f

2:

// It will round the floats in Vector3F and leave the results as ints
Vector3F vect = new Vector3F(2.3f, 1.114124f, 0f);
int x = Math.round(vect.x);
int y = Math.round(vect.x);
int z = Math.round(vect.x);

还有更多信息:How to convert float to int with Java