相关疑难解决方法(0)

均匀地在球体上分布n个点

我需要一个算法,可以给我一个球体周围的位置N点(可能小于20),模糊地将它们展开.没有必要"完美",但我只是需要它,所以没有一个被捆绑在一起.

  • 这个问题提供了很好的代码,但是我找不到制作这种制服的方法,因为这似乎是100%随机化的.
  • 这个博客文章推荐有两种方式允许输入球体上的点数,但Saff和Kuijlaars算法完全是我可以转录的伪代码,我发现的代码示例包含"node [k]",我不能看到解释并破坏了这种可能性.第二个博客的例子是黄金分割螺旋,它给了我奇怪的,褶皱的结果,没有明确的方法来定义恒定的半径.
  • 这种算法这个问题好像它可能工作,但我无法拼凑出那是什么网页上成伪代码或任何东西.

我遇到的一些其他问题主题是随机均匀分布,这增加了我不关心的复杂程度.我很抱歉这是一个如此愚蠢的问题,但我想表明我真的很努力,但仍然很短暂.

所以,我正在寻找的是简单的伪代码,可以在单位球体周围均匀分布N个点,这些点可以返回球形或笛卡尔坐标.如果它甚至可以通过一点随机分布来更好(想想围绕恒星的行星,分散得很好,但有余地的余地).

python algorithm math geometry uniform

110
推荐指数
8
解决办法
8万
查看次数

如何在OpenGL中实现没有重复顶点的平面着色?

我正在尝试使用平面着色在 LWJGL OpenGL 中渲染 3D 棱镜。例如,我有一个索引如下的多维数据集:

在此输入图像描述

我的顶点缓冲区中只有 8 个顶点,我已按上述方式对其进行了索引。有没有办法在立方体上实现平坦的法线着色,如下所示?如果可能的话,我不想重写我的顶点和索引缓冲区以包含重复的顶点。

opengl shader glsl lwjgl n-dimensional

10
推荐指数
1
解决办法
7763
查看次数

制作具有等距顶点的球体

我正在尝试制作一个球形爆发射线以检查碰撞,但是根据每条射线撞击的内容或位置发生特定的相互作用.因此,为什么我使用光线而不是更简单的东西,如OverlapSphere.

我正在寻找如何制作球体的原因是因为我可以使用相同的数学计算我的光线,让它们到达球体所在的顶点.但是我能找到制作球体的每一种方式都会让线条越来越接近极点,这很有意义,因为它很容易做到.但是你可以想象,它对我当前的项目没那么有用.

TL; DR: 如何制作具有等距顶点的球体?如果它的罚款不完全等距,它只需要非常接近.如果发生这种情况,如果你可以给出差异的多少,以及在哪里,如果适用,那将是很好的.

附加说明: 我看这个这个,但数学方法在我头上,所以我一直在寻找可能刚刚被这整个时间盯着我的脸.

c# math geometry unity-game-engine

8
推荐指数
2
解决办法
4963
查看次数

使用Fibonacci格子在球体上均匀排列点

我试图在单位球体的表面上或多或少均匀地排列点.

我被告知虽然这个问题很难解决,但Fibonacci Lattices提供了一个非常好的解决方案.

我已经尝试了几天来关注链接文档中提供的非常简单的方法,但我根本无法让它看起来正确.

我正在使用javascript,我有一个对象数组e,每个对象都公开一个latlon参数.这是我用来排列球体上的点的函数:(现在假设点的数量总是奇数)

function arrangeEntries(e)
{
    var p = e.length;
    var N = (p - 1) / 2;

    for (var i = -N; i <= N; i++)
    {
        e[i + N].lat = Math.asin((2 * i) / (2 * N + 1));
        e[i + N].lon = mod(i, 1.618034) * 3.883222;
    }
}
Run Code Online (Sandbox Code Playgroud)

function mod(a, b)
{
    return a - Math.floor(a / b) * b;
}
Run Code Online (Sandbox Code Playgroud)

不同于文档中,我latlon …

javascript algorithm fibonacci html5-canvas

7
推荐指数
1
解决办法
1343
查看次数

将圆柱体变成球体而不会在杆上捏住

我正在研究用六边形网格制作的行星.不需要杆 - 使这更容易一些.有没有更好的方法将圆柱体变成具有均匀六边形/三角形的球体?

这是所需的步骤:

  1. 生成二维六边形平面(ok)
  2. 将飞机变成一个气缸(好)
  3. 将气缸变成球体/地圈(有点作品)

对于第2步,我只是使用Sin和Cos将顶点移动到圆形.对于第3步,现在我只是使用:vertices[i] = vertices[i].normalized * radius;

图像可视化当前的问题.

请注意,电极是故意切断的.红色部分显示六边形网格的样子.我必须保持它们的大小和方向大致相同,因为它们用于游戏和视觉元素.每个十六进制都有一个邻居列表,基本上就像一个图形.

math 3d geometry

3
推荐指数
1
解决办法
2088
查看次数

我应该如何处理(变形)opengl中的4D对象?

我想尝试编写类似于4D玩具的游乐场,所以我开始学习opengl。
根据我目前的理解,人们将VBO和统一的转换矩阵用于大多数静态对象
(例如立方体,骨骼动画等,通常只涉及转换)。

我还听说,模型之间的变形也使用VBO来缓存两个模型,因为这两个模型都可以很好地定义并且不需要太多的中间步骤。

但是在上面提到的4D玩具中,物体会发生变形并被大量裁剪。
而且很可能没有定义的模型,并且两者之间有很多转换。
(现在可能是一个简单的正方形,一个尖刺的球在以后被切成两半)。
在这种情况下,每帧更新顶点VBO或顶点数组(我在另一个问题中看到)是合适的解决方案吗?

opengl graphics geometry rendering 4d

3
推荐指数
1
解决办法
1068
查看次数

如何使用 4d 转子

我正在尝试创建一个类似于Miegakure的 4D 环境。

我无法理解如何表示旋转。Miegakure 的创建者写了这篇小文章,解释了他为 4d 转子制作的课程。 http://marctenbosch.com/news/2011/05/4d-rotations-and-the-4d-equivalent-of-quaternions/

我怎样才能实现这个类的功能?特别是旋转矢量和其他转子的功能,并得到逆?

我将不胜感激一些伪代码示例。非常感谢任何麻烦回答的人。

math angle rotation 4d

3
推荐指数
2
解决办法
1274
查看次数