CodeCrafterCpp
Erfahrenes Mitglied
Ok das ist ein Fehler aber die gebe ich ja nicht aus...Es muss eigentlich ja ein Fehler beim Konvertieren sein von String in Float gibt es da noch andere Möglichkeiten?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
#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);
pos2 = buffer.find(" ", pos1);
bx = buffer.substr(pos1, pos2);
pos1 = buffer.find(" ", pos2);
by = buffer.substr(pos2, pos1);
pos2 = buffer.find(" ", pos1);
bz = buffer.substr(pos1, pos2);
istringstream ibx (bx);
ibx >> bxf;
istringstream iby (by);
iby >> byf;
istringstream ibz (bz);
ibz >> bzf;
s1->ex[i] = bxf;
s1->ex[i] = byf;
s1->ex[i] = bzf;
cout << s1->ex[i] << endl << s1->ex[i] << endl << s1->ex[i] << 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;
}
# Blender v2.62 (sub 0) OBJ File: ''
# www.blender.org
mtllib test.mtl
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
usemtl Material
s off
f 1 2 3 4
f 5 8 7 6
f 1 5 6 2
f 2 6 7 3
f 3 7 8 4
f 5 1 4 8
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
1
1
1
1
1
cout <<bxf << endl << byf << endl << bxf << endl;
1
-1
1
1
-1
1
-1
-1
-1
-1
-1
-1
1
1
1
0.999999
1
0.999999
-1
1
-1
-1
1
-1
1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
0.99999
1
1
-1
1
1
-1
1
1
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
typedef float vec3f[3];
int main() {
ifstream in("test.dat");
string line;
while (getline(in, line)) {
istringstream is(line);
char type;
if (is >> type) {
switch (type) {
case 'v':
vec3f v;
if (is >> v[0] >> v[1] >> v[2])
cout << v[0] << " " << v[1] << " " << v[2] << endl;
break;
case '#': // comment
break;
default:
clog << "unknown type: " << type << endl;
}
}
}
}
cout ist für normale Programmausgaben. clog für Loggingausgaben (könnte man z.B. in eine Datei umleiten).Ok sieht besser aus Ich schau mal wie du es gemacht hast und versuche es zu verstehen aber warum hast du einmal "cout" und einmal "clog" benutzt wo liegt der unterschied?