Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.09.2009, 17:34   #1
alhon
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 146
По умолчанию opengl

помогите, Я изучаю OpenGL и столкнулся с такой проблемой: Рисую точки в виде спмрали И при запуске VC++2005 ошибок не выдаёт (т.е. Build: 0 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========) а запускаемое окно, в котором должна быть точки зависат и выдаёт ошибку "Run-Time Check Failure #3 - The variable 'xRot' is being inititialized" т.е. у меня не инициализована матрица хотя я делаю
glPopMatrix();

сам алгоритм вот:


#include "windows.h"
#include "gl/gl.h"
#include <gl\glut.h>
#include <math.h>
#define GL_PI 3.1415f


//создаём состояние визуализации
void SetupRC()
{
//Чёрный фон
glClearColor(0.0f,0.0f, 0.0f, 1.0f);
//Цвет рисования выбираеться зелёным
glColor3f(0.0f, 1.0f, 0.0f);
}
//вызываеться процедура рисования сцены
void RenderScene(void)
{
GLfloat x,y,z,angle; //Здесь храняться координыты и углы
GLfloat xRot, yRot; // - ВОТ этого в книге вообще нет
//окно очищаеться текущим цветом очистки (Очистка буфера цвета)
glClear(GL_COLOR_BUFFER_BIT);
//Записываем состояние маприцы и выполняем поворот
glPushMatrix();
GLfloat xRot, yRot; // - ВОТ этого в книге вообще нет
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
//Вызываем один раз для всех оставшихся точек
{
glBegin(GL_POINTS);
z = -50.0f;
for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle += 0.1f)
{
x = 50.0f*sin(angle);
y = 50.0f * cos(angle);
//Задаёт точку и нмного смещает значение z
glVertex3f(x,y,z);
z += 0.5f;
}
//Рисуем точку
glEnd();}
//Восстанавливаем преобразование
glPopMatrix();
//Очищаем стек команд рисования
glFlush();
}
}
///////////////////////////////////////////////////////////////////////////
//вызывается библиотекой GLUT при изменении размера окна
void ChangeSize(GLsizei w, GLsizei h)
{
GLfloat nRange = 100.0f;//переменная
//Предотвращаем еление на ноль
if(h==0)
h=1;
//Устанавливаем поле просмотра с размерами окна
glViewport(0,0,w,h);
//Обновляет систему координат
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//С помощью плоскостей отсечения (левая, прав,нижняя,верхняя,ближняя,дальняя )устанав-ем объём отсичения
nRange = (GLfloat)w / (GLfloat)h;
if (w <= h)
glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
else
glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Точка входа основной программы
void main(void)
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
}

И ещё выдаёт
1>------ Build started: Project: 3dproject, Configuration: Debug Win32 ------
1>Compiling...
1>3dproject.cpp
1>c:\documents and settings\zhih\рабочий стол\программы\3dproject\3dproject\ 3dproject.cpp(37) : warning C4700: uninitialized local variable 'xRot' used
1>c:\documents and settings\zhih\рабочий стол\программы\3dproject\3dproject\ 3dproject.cpp(38) : warning C4700: uninitialized local variable 'yRot' used
1>Linking...
1>Embedding manifest...
1>Build log was saved at "file://c:\Documents and Settings\ZHIH\Рабочий стол\ПРОГРАММЫ\3dproject\3dproject\ Debug\BuildLog.htm"
1>3dproject - 0 error(s), 2 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========


т.е. не нравиться xRot и yRot. Не знаю что делать. Если кто-нибудь знает - напишите. Запание спасибо.
alhon вне форума
Старый 06.09.2009, 17:39   #2
alhon
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 146
По умолчанию

Я извеняю "GLfloat xRot, yRot; // - ВОТ этого в книге вообще нет" Написано ОДИН раз под GLfloat x,y,z,angle;
alhon вне форума
Старый 10.10.2013, 15:02   #3
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Цитата:
"Run-Time Check Failure #3 - The variable 'xRot' is being inititialized" т.е. у меня не инициализована матрица хотя я делаю glPopMatrix();
Все правильно, ведь эта команда работает с матрицей OpenGL http://cybersite.ucoz.net/blog/vidov.../2013-07-15-19, а точнее с матричным стеком.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
OpenGl Freer Помощь студентам 1 25.05.2009 17:57
OpenGL yanl Компьютерное железо 0 16.11.2008 00:52
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43