Я пытаюсь написать программу на C++ с OpenGL, которая считывает данные из файла и масштабирует, затем отображает данные.Чтение точек точек из файла, а затем масштабирование
Данные в файле настройки, как, например:
0.017453293\tab 2.01623406\par 0.087266463\tab 2.056771249\par 0.191986218\tab 2.045176705\par 0.27925268\tab 1.971733548\par
\tab
с означающий координаты х и \par
означающий у-координату.
Код, который я написал, похоже, не работает.
#include "stdafx.h"
#include <stdlib.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include "glut.h"
#include <iostream>
#include <string>
#include <fstream>
int _tmain(int argc, char **argv) {
void myInit(void);
void myDisplay(void);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480);
glutInitWindowPosition(100, 150);
glutCreateWindow("CMPS389 HW2");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
}
void myInit(void) {
glClearColor(0.0, 0.0, 0.0, 0.0);
glColor3f(1.0, 1.0, 1.0);
glPointSize(4.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
void myDisplay(void) {
glClear(GL_COLOR_BUFFER_BIT);
std::string words = "";
float locX;
float locY;
std::ifstream fileN("curveData.txt");
while(fileN != NULL) {
fileN>>words;
if (words == "\par") {
fileN>>locX;
}
if (words == "\tab") {
fileN>>locY;
glBegin(GL_LINES);
glVertex2f(locX*300, locY*300);
glEnd();
}
glFlush();
}
}
Что вы подразумеваете под ", похоже, не работает"? Не работает как? Неверный результат? Сбои? Появляются единороги? – Bart
Он, вероятно, сидит на диване весь день, смотря телевизор. Во всяком случае, отбросьте весь материал GL из вашего кода, вам не понадобится его, чтобы продемонстрировать проблему с чтением входного файла. Для одной строки читайте поплавок, строку, поплавок и строку за один раз. Проверьте состояние потока для успешного обнаружения, например. EOF. Затем убедитесь, что две строки являются ожидаемыми значениями и, наконец, обрабатывают две координаты. –
Он не содержит никаких данных, которые я им даю. Я не знаю, связано ли это с тем, что то, как я читаю данные, неверно, или если мое масштабирование ошибочно и рисует точки за пределами окна. – Deafsilver