CodeCrafterCpp
Erfahrenes Mitglied
Hallo,
Ich hatte das kurz in einen anderen Thema aber das hat da nicht mehr rein gepasst also vom Titel her.
Der Code:
Im Bild sieht man die Ausgabe und die Datei mit den Daten ich möchte alle Werte die nach den "V" stehen in einer Float Variable speichern. Die erste Zeile passt ja noch aber dann stimmt es nicht mehr richtig.
mfG
Ich hatte das kurz in einen anderen Thema aber das hat da nicht mehr rein gepasst also vom Titel her.
Der Code:
C++:
#include <iostream>
#include <windows.h>
#include <SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
bool e = true;
void init()
{
glClearColor(0.0,0.0,0.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,640.0/480.0,5.0,500.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
class Quad
{
public:
float ex[10];
float ey[10];
float ez[10];
};
void auslesen(string Pfade, class Quad *s1)
{
int i = 0;
ifstream file(Pfade);
string buffer;
size_t pos1;
size_t pos2;
float bxf, byf, bzf;
string bx, by, bz;
while(e == true && getline(file,buffer))
{
if(!buffer.find('v'))
{
pos1 = buffer.find(" ");
buffer = buffer.substr(pos1+1);
pos2 = buffer.find(" ", pos1);
bx = buffer.substr(pos1-1, pos2);
pos1 = buffer.find(" ", pos2);
by = buffer.substr(pos2+1, pos1);
pos2 = buffer.find(" ", pos1);
bz = buffer.substr(pos1+1, pos2);
cout << bx << by << bz << endl;
istringstream ibx (bx);
ibx >> bxf;
istringstream iby (by);
iby >> byf;
istringstream ibz (bz);
ibz >> bzf;
s1->ex[i] = bxf;
s1->ey[i] = byf;
s1->ez[i] = bzf;
//cout <<bxf << endl << byf << endl << bzf << endl;
i++;
}
}
e = false;
file.close();
}
void display()
{
Quad s1;
auslesen("C://Users/Jonas/Desktop/test.obj",&s1);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glVertex3f(s1.ex[0], s1.ey[0], s1.ez[0]);
glVertex3f(s1.ex[1], s1.ey[1], s1.ez[1]);
glVertex3f(s1.ex[2], s1.ey[2], s1.ez[2]);
glVertex3f(s1.ex[3], s1.ey[3], s1.ez[3]);
/*glVertex3f(1.000000, -1.000000,5.0);
glVertex3f(-1.000000, -1.000000,5.0);
glVertex3f(-1.000000, 1.000000,5.0);
glVertex3f(1.000000, 1.000000,5.0);
glVertex3f(1.000000, 1.000000,-5.0);
glVertex3f(1.000000, 1.000000,5.0);
glVertex3f(1.000000, -1.000000,5.0);
glVertex3f(1.000000, -1.000000,-5.0);
glVertex3f(1.000000, -1.000000,-5.0);
glVertex3f(1.000000, -1.000000,5.0);
glVertex3f(-1.000000, -1.000000,5.0);
glVertex3f(-1.000000, -1.000000,-5.0);
glVertex3f(-1.000000, -1.000000,-5.0);
glVertex3f(-1.000000, -1.000000,5.0);
glVertex3f(-1.000000, 1.000000,5.0);
glVertex3f(-1.000000, 1.000000,-5.0);
glVertex3f(-1.000000, 1.000000,-5.0);
glVertex3f(-1.000000, 1.000000,5.0);
glVertex3f(1.000000, 1.000000,5.0);
glVertex3f(1.000000, 1.000000,-5.0);*/
glEnd();
}
int main(int, char**)
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface* screen=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE|SDL_OPENGL);
bool running=true;
Uint32 start;
SDL_Event event;
init();
while(running)
{
start=SDL_GetTicks();
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
running=false;
break;
}
}
display();
SDL_GL_SwapBuffers();
if(1000/30>(SDL_GetTicks()-start))
SDL_Delay(1000/30-(SDL_GetTicks()-start));
}
SDL_Quit();
return 0;
}
Im Bild sieht man die Ausgabe und die Datei mit den Daten ich möchte alle Werte die nach den "V" stehen in einer Float Variable speichern. Die erste Zeile passt ja noch aber dann stimmt es nicht mehr richtig.
mfG
Anhänge
Zuletzt bearbeitet von einem Moderator: