gpt4 book ai didi

c - 3D 骰子生成算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:35 25 4
gpt4 key购买 nike

我正在用 C 编写一个简单的测试应用程序,它应该生成三维骰子。我打算使用 OpenGL 进行实际绘图,但我不知道如何实际生成顶点。当然,这个测试的重点是看我的算法是否有效,但我发现了一个我无法修复的重大逻辑错误。有人可以给我指出一篇文章、网站或解释这个概念的东西吗?如果不是,虽然我更愿意自己做实际的实现,但 C 代码是可以接受的。

基本上,这是我在忘记我为算法所做的事情之前所做的:

void calculateVertices(int sides) {
BOOL isDone = FALSE;
int vectorsPerSide = 3;
VDVector3f *vertices = malloc((sizeof(VDVector3f) * (sides + 1)));
VDVector3f *normals = malloc((sizeof(VDVector3f) * (sides + 1)));

while (!isDone) {
// Start by positioning the first vertex.
vertices[0] = VDVector3fMake(0.0, 0.0, 1.0);

for (int index = 1; index <= sides; index ++) {

}

// Not a match, increase the number of vectors
vectorsPerSide ++;
}
}

基本上,它会循环直到找到匹配项。这对我来说听起来效率低下,但我不知道如何做到这一点。第一个顶点实际上将在末尾从数组中删除;我打算用它来创建第一面,这将被用来正确定位其他面。

我的主要目标是能够将数字(如 30)传递给它,并让它自动设置顶点。我将防止做出单面和双面骰子,因为我有一些特别的想法。我将在别处输入这些顶点。

在此先感谢您的帮助!

顺便说一句,我有一个算法可以对完成的顶点数组进行归一化。您不必为此费心帮忙。

最佳答案

我认为这不可能一概而论。例如,您将如何制作一个公平的 5 或 9 面骰子?我不认为我曾经见过这样的事情。在维基百科上快速搜索表明柏拉图式固体可能就是您所追求的。 http://en.wikipedia.org/wiki/Platonic_solid

关于c - 3D 骰子生成算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11353872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com