Objective c 随机移动-Windows管道屏幕保护程序

Objective c 随机移动-Windows管道屏幕保护程序,objective-c,c,algorithm,Objective C,C,Algorithm,你们中的许多人可能知道。有人知道这是如何用3D或2D编程的吗?没有真正的代码是必要的-只是一个完整的算法解释将是伟大的 这是在微软对Windows上的OpenGL感到兴奋时使用OpenGL完成的。虽然我不能权威地谈论其余部分,但我不确定我是否看过源代码,它看起来是一个非常简单的问题,即选择一个方向向上、向下、向左、向右、向前、向后和一段距离,并有一些边界将其保持在一个立方体中 管道具有特定直径,如果需要,可以选择要在管道上设置纹理的位图。如果不使用纹理,它可以/将选择颜色。它已经足够老了,我相信

你们中的许多人可能知道。有人知道这是如何用3D或2D编程的吗?没有真正的代码是必要的-只是一个完整的算法解释将是伟大的

这是在微软对Windows上的OpenGL感到兴奋时使用OpenGL完成的。虽然我不能权威地谈论其余部分,但我不确定我是否看过源代码,它看起来是一个非常简单的问题,即选择一个方向向上、向下、向左、向右、向前、向后和一段距离,并有一些边界将其保持在一个立方体中

管道具有特定直径,如果需要,可以选择要在管道上设置纹理的位图。如果不使用纹理,它可以/将选择颜色。它已经足够老了,我相信它写的是只使用20 16?Windows将颜色定义为几乎所有图形适配器都支持的基本调色板,但自从主流硬件几乎受到限制以来,已经有相当一段时间了。

是Chrome的屏幕截图。在chrome中,编程非常容易:

file_util::AppendToPath(&path, L"sspipes.scr");
  CreateProcess(NULL, ...
或者:打开windows管道屏幕保护程序文件并运行它

xscreensaver版本的来源是:xscreensaver-4.16.tar.bz2中的xscreensaver-4.16/hacks/glx/pipes.c或同一软件包的其他版本

更新:工作原理:它使用OpenGL使事物变得美丽

每个附加管绘制为圆柱体和球体:

    glBegin(GL_QUAD_STRIP);
    for (an = 0.0; an <= 2.0 * M_PI; an += M_PI / 12.0) {
            glNormal3f((COSan_3 = cos(an) / 3.0), (SINan_3 = sin(an) / 3.0), 0.0);
            glVertex3f(COSan_3, SINan_3, one_third);
            glVertex3f(COSan_3, SINan_3, -one_third);
    }
    glEnd();
对于弯板,许多代码用于绘制函数myElbow

对于“不相交”,三维阵列与此空间点包含管道的标志一起使用。所有管道都具有整数坐标,并与轴平行。透视校正来自三维库opengl/direct3d

逻辑的主要功能是绘制管道

它绘制一个球体,选择一个随机方向,然后开始管路。每一步都有一个20%弯曲概率的随机棚屋。此外,每一步都要检查近路以防止碰撞。如果没有可用空间继续管道,或者管道足够长,也可能是随机的,它将停止,新管道从随机点开始

你可以检查里面有个克隆人。
    quadObj = gluNewQuadric();
    gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
    gluSphere(quadObj, radius, 16, 16);
    gluDeleteQuadric(quadObj);