我一直在拼命地尝试在我的体素引擎中创建一个球体工具。我知道创建球体的一般功能:
public bool getPoint (int x, int y, int z) {
return (x*x+y*y+z*z < r*r) ? true : false;
}假设原点为(0,0,0),此函数将创建一个球体。然而,我希望能够创建一个具有自定义原点(或用户定义的)的球体,比如原点是(10,10,10)。如何修改此函数以将原点移动到不同的位置?
发布于 2014-02-04 01:46:42
让ox, oy, oz成为你球体的中心。然后,在进行计算之前,只需从x, y, z中减去中心:
public bool getPoint (int x, int y, int z, int ox, int oy, int oz)
{
x -= ox;
y -= oy;
z -= oz;
return (x*x+y*y+z*z < r*r);
}请注意,无论expr ? true : false是什么,表达式expr都等同于expr。
https://stackoverflow.com/questions/21537878
复制相似问题