我试图在块游戏中创建一个3D圆环,所以我需要评估一系列坐标,看看它们是否在圆环内.我用球体做的方式是: shapefunc = function (pos,fields) map = {} pos.x = math.floor(pos.x+0.5) pos.y = math.floor(pos.
shapefunc = function (pos,fields) map = {} pos.x = math.floor(pos.x+0.5) pos.y = math.floor(pos.y+0.5) pos.z = math.floor(pos.z+0.5) for x=-fields.radius,fields.radius do for y=-fields.radius,fields.radius do for z=-fields.radius,fields.radius do if x*x+y*y+z*z <= fields.radius*fields.radius then table.insert(map,{x=pos.x+x,y=pos.y+y,z=pos.z+z}) end end end end return map end
给定高度(在y轴上),次要和主要半径(在xz轴上)和一个原点,我试过的评估表达式都没有给我任何接近圆环的东西.
根据 this,这是测试表达符号的问题:(x ^ 2 y ^ 2 z ^ 2-(a ^ 2 b ^ 2))^ 2 – 4 * a * b *(b ^ 2-z ^ 2)
其中点是{x,y,z},圆环的小半径是b,主半径是a.