unten sind eine ganze Länge von Code, den ich von NEHE Production kopiert habe (Lektion 25) .. Ich wollte nur herumspielen, aber scheinen nicht in der Lage zu ändern/konvertieren Sie jede Punkte in eine einzelne Kugeln noch Zylinder ..
irgendwie, als ich meine Einstellung tat sie sind nicht in der Art und Weise, wie sie angenommen werden sollen und sie werden nicht drehen ..
Ich plante, Licht in diesem Tutorial später als auch ..Benötigen Sie Hilfe beim Umwandeln von Punkten in Formen
Vielen dank im Voraus für jede Hilfe =]
int InitGL(GLvoid)
{
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
maxver=0;
objload("data/sphere.txt",&morph1);
objload("data/torus.txt",&morph2);
objload("data/Tube.txt",&morph3);
objallocate(&morph4,10300);
for(int i=0;i<10300;i++)
{
morph4.points[i].x=((float)(rand()%14000)/1000)-7;
morph4.points[i].y=((float)(rand()%14000)/1000)-7;
morph4.points[i].z=((float)(rand()%14000)/1000)-7;
}
objload("data/Tube.txt",&helper);
sour=dest=&morph1;
return TRUE;
}
void DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(cx,cy,cz);
glRotatef(xrot,1,0,0);
glRotatef(yrot,0,1,0);
glRotatef(zrot,0,0,1);
xrot+=xspeed; yrot+=yspeed; zrot+=zspeed;
GLfloat tx,ty,tz;
VERTEX q;
glPointSize(2.0f);
//glBegin(GL_POINTS);
for(int i=0;i<morph3.verts;i++)
{
if(morph)
q=calculate(i);
else
q.x=q.y=q.z=0;
helper.points[i].x-=q.x;
helper.points[i].y-=q.y;
helper.points[i].z-=q.z;
tx=helper.points[i].x;
ty=helper.points[i].y;
tz=helper.points[i].z;
glColor3f(0,1,1);
glPushMatrix(); //i have modified this part onwards
gltranslaste(tx,ty,tz);
glutSolidSphere(2,6,6);
glPopMatrix();
/*glVertex3f(tx,ty,tz);
glColor3f(0,0.5f,1);
tx-=2*q.x; ty-=2*q.y; ty-=2*q.y;
glVertex3f(tx,ty,tz);
glColor3f(0,0,1);
tx-=2*q.x; ty-=2*q.y; ty-=2*q.y;
glVertex3f(tx,ty,tz);*/
}
//glEnd();
if(morph && step<=steps)
step++;
else
{
morph=FALSE; sour=dest; step=0;
}
}
Sie sollten Ihre Frage bearbeiten und den gesamten Code um weitere 4 Leerzeichen einrücken ... so wird das Ganze in einem Block korrekt angezeigt. – Beska
Ein Ort, wo Regex Gold ist ersetzen ("; \ s \ s +") –
applaud @ LFSR mehr Arbeit, als ich bereit war zu begehen! –