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

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

概述我试图在块游戏中创建一个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 我试图在块游戏中创建一个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 mapend

给定高度(在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.

总结

以上是内存溢出为你收集整理的3d – 给定原点和半径,如何找出p(x,y,z)是否在环面内?全部内容,希望文章能够帮你解决3d – 给定原点和半径,如何找出p(x,y,z)是否在环面内?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存