Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C GLUT中的多个对象_C_Glut - Fatal编程技术网

C GLUT中的多个对象

C GLUT中的多个对象,c,glut,C,Glut,我想把一个物体(立方体)乘以一个特定的数字,比如说25,我有一个立方体的代码,它可以工作,但我不知道如何制作更多。我是个新来的暴饮暴食者 #include <GL/gl.h> #include <GL/glut.h> #include <stdlib.h> void initGL(int width, int height) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective

我想把一个物体(立方体)乘以一个特定的数字,比如说25,我有一个立方体的代码,它可以工作,但我不知道如何制作更多。我是个新来的暴饮暴食者

#include <GL/gl.h>
#include <GL/glut.h>
#include <stdlib.h>

void initGL(int width, int height)
{

 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,2.0f, 100.0f);
 glMatrixMode(GL_MODELVIEW);
}
static void display(void)
{

glLoadIdentity();
glPushMatrix();
    glTranslatef(0.0,0.0,-10);
    glRotatef(60,1,0,0);
    glRotatef(60,0,1,0);
    glutSolidCube(2);
glPopMatrix();

glFlush();
}

static void idle(void)
{
glutPostRedisplay();
}

int main(int argc, char *argv[])
{

int width = 640;
int height = 480;

glutInit(&argc, argv);
glutInitWindowSize(width, height);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

glutCreateWindow("GLUT cube");

glutDisplayFunc(display);
glutIdleFunc(idle);

initGL(width, height);

glutMainLoop();

return EXIT_SUCCESS;

}
#包括
#包括
#包括
void initGL(整数宽度、整数高度)
{
glMatrixMode(GL_投影);
glLoadIdentity();
透视图(45.0f,(GLfloat)宽度/(GLfloat)高度,2.0f,100.0f);
glMatrixMode(GLU模型视图);
}
静态无效显示(无效)
{
glLoadIdentity();
glPushMatrix();
glTranslatef(0.0,0.0,-10);
glRotatef(60,1,0,0);
glRotatef(60,0,1,0);
立体立方体(2);
glPopMatrix();
glFlush();
}
静态无效空闲(无效)
{
再发现();
}
int main(int argc,char*argv[])
{
整数宽度=640;
内部高度=480;
glutInit(&argc,argv);
glutInitWindowSize(宽度、高度);
位置(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow(“GLUT立方体”);
glutDisplayFunc(显示器);
glutIdleFunc(空闲);
initGL(宽度、高度);
glutMainLoop();
返回退出成功;
}

如果有更详细的指南,我将非常感谢您的分享。

每次您调用
glutSolidCube()
,它都会绘制一个立方体。如果希望显示多个多维数据集,则需要在
display()
的实现中多次调用该函数


(确保在每次调用之间更改模型矩阵!否则,多维数据集将在同一个位置结束。)

您所说的“乘法”是什么意思?你的意思是增加它的大小,还是画多个对象?同一个对象的多个。所以我会复制粘贴显示内容到自身中并更改坐标?