加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

3d – 给定原点和半径,如何找出p(x,y,z)是否在环面内?

发布时间:2020-12-14 21:46:48 所属栏目:大数据 来源:网络整理
导读:我试图在块游戏中创建一个3D圆环,所以我需要评估一系列坐标,看看它们是否在圆环内.我用球体做的方式是: 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=-f
我试图在块游戏中创建一个3D圆环,所以我需要评估一系列坐标,看看它们是否在圆环内.我用球体做的方式是:

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读