我一直在拼命尝试在我的体素引擎中创建一个球体工具。我知道创建球体的一般功能:
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)。如何修改此功能以将原点移动到其他位置?
答案 0 :(得分:0)
让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
。