【问题标题】:I'm looking for an equation to plot a sphere in a 3D array我正在寻找一个方程来绘制一个 3D 数组中的球体
【发布时间】:2017-05-23 03:34:31
【问题描述】:

我正在用 Unity 制作游戏,用 c# 编码。世界是由立方体构建的(类似于 minecraft),我将它们存储在一个 3D 整数数组中,其值稍后用于实例化实际的立方体。我正在努力用不同的形状填充 3D 阵列。 我的数学知识不是很深入,所以我在绘制 3D 数组中的球体点时遇到了麻烦。有谁知道我可以使用的算法吗?

【问题讨论】:

标签: arrays unity3d graphics 3d grid


【解决方案1】:

如果你想用立方体构建一个球体,这很容易。 Sphere 实际上是最简单的 3D 对象。您需要有一个浮动半径和一个 Vector3 位置。比与原点的距离小于半径的每个立方体都应该在那里。示例:

foreach(Transform cube in cubes[]){
    if(Vector3.Distance(cube.position, origin) < radius){
        //This cube should be inside the sphere
    }
}

【讨论】:

  • 这是不正确的。这个问题要求我们提供可以组合在一起形成球体的立方体的位置。您的答案只是检查立方体是否在具有给定半径的原点球体内。
  • 也许我的问题有点不清楚,但这对我的游戏非常有效。我没有足够的代表来支持你的答案,但有一天我会的。非常感谢
  • @Farhan OP 说他们数学不好,所以我向他们解释了球体的实际工作原理。我给他们举了一个例子。我解释错了什么?
  • 解释是正确的,但解决方案虽然没有回答问题。它询问您如何绘制立方体以使它们形成一个球体,然后询问您如何将位置放置在数组中。您的答案已经假设一个数组并检查给定位置的立方体是否位于球体内。
  • @Farhan 这个答案很好。提问者没有提供足够的信息来说明球体应该在哪里int数组中的什么值表示一种材料块与另一种材料块。数组 必须 被假定为开始,因为它需要被修改以包含有意义的信息。 唯一可能有问题的是该数组的性质,但对于一个相当聪明的人来说,这里已经足够将它转换为他们自己的项目了。
猜你喜欢
  • 2012-06-23
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多