Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: помагите с openGL  (Прочитано 933 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн steph.z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
помагите с openGL
« : 30 Октября 2010, 20:51:39 »
Здраствуйте.
Пытаюсь написать программу  рисования с помощью openGL.
Пока пытаюсь записать координаты в массив и чтоб он выводился на экран.
Проблема в том что экран либо астаетса черным либо точки выводятся не там.
Вот исходник.

#include <GL/glut.h>
#include <stdio.h>

float old_x[5] ;
float old_y[5];
int  i=0;//GLboolean drawpoints = GL_FALSE;
void init(void)
{glClearColor(0.0 , 0.0 , 0.0 , 1.0 );
glEnable(GL_DEPTH_TEST);

glPointSize(5);


}


void display()
{int z;int v;
float cc[5] , vv[5];
float ax ,ay;
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glMatrixMode(GL_MODELVIEW);
 glColor3f(01.0, .0 , 0.0);
  glPushMatrix();
 
glBegin(GL_POINTS);
if(z<i){for(z=0  ; z<i;z++ ){

  glVertex3f(old_x[z], old_y[z] ,0);
//glVertex3f(cc[1], vv[0] ,0);
//glVertex3f(cc[0], vv[1] ,0);
}
glEnd();
}
glPopMatrix();
glutSwapBuffers();
}

void reshape(int w, int h)
{glViewport(0 , 0 ,(GLsizei)w ,(GLsizei)h );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

}



void mouse(int button, int state, int x, int y)
{if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
x=old_x;
y=old_y;
i++;
 glutPostRedisplay();
}

}
int main(int argc,char** argv){
glutInit(&argc , argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400 , 400);
int glWin = glutCreateWindow("OpenGL example 1");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);

glutMouseFunc(mouse);
glutMainLoop();
return 0;
}


Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: помагите с openGL
« Ответ #1 : 31 Октября 2010, 13:26:05 »
Цитировать
Пока пытаюсь записать координаты в массив и чтоб он выводился на экран.
Интересно как? :)
xUbuntu 12.04

Оффлайн steph.z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: помагите с openGL
« Ответ #2 : 31 Октября 2010, 17:24:20 »
void mouse(int button, int state, int x, int y)
{if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
void mouse(int button, int state, int x, int y)
{if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
x=old_x;
y=old_y;
i++;
 glutPostRedisplay();
}

вот примерно так.

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: помагите с openGL
« Ответ #3 : 31 Октября 2010, 18:14:42 »
float old_x[5] ;
float old_y[5];
x=old_x;
y=old_y;
Нужно взять любую книжку по c и почитать.
Так и не нашёл где массив заполняется. :)
« Последнее редактирование: 31 Октября 2010, 18:18:13 от Упс »
xUbuntu 12.04

 

Страница сгенерирована за 0.029 секунд. Запросов: 26.