Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> упрощаю вопрос о OpenGL, рисование прямоугольника в OpenGl 
V
    Опции темы
Aristokrat
Дата 22.3.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Так как все вежливо отмолчались на мой предыдущий вопрос, упрощаю поставленный вопрос, как нарисовать прямоугольник я это делаю так (ниже приведённый код) , но так как прямоугольник ниресуется , пологаю что делаю что то не так,так в чём же трабла кто подскажет. Повторюсь , всё компилться без ошибок , но выводиться просто окно.

Код

#include <GL/glui.h>
#include <windows.h>
#include <stdio.h>

int WinHeight=480;
int WinWidth=600;


int p1x=50;
int p2x=50;
int p1y=150;
int p2y=150;



void Display(){
 
 glClear(GL_COLOR_BUFFER_BIT);//очищает экран
 glRectf(p1x,p1y,p2x,p2y);//ДОЛЖНО ПОИДЕЕ РИСОВАТЬ ПРЯМОУГОЛЬНИК АН, НЕТ
 
 /*
    glBegin(GL_POLYGON);
    glVertex2(p1x, p1y);
    glVertex2(p2x, p1y);   ПРОБОВАЛ И ТАК НО НИЧЕГО НЕТ
    glVertex2(p2x, p2y);
    glVertex2(p1x, p2y);
    glEnd();
 */
 
 glutSwapBuffers();//выводит полученное изображение    
  
}

void Keybord(unsigned char key,int x,int y)//реагирует на esc
{
 switch(key){
    case 27:
            {        
              exit(VK_ESCAPE);
              break;        
            }     
  }
 }



void Reshape(int width,int height)//вызывается при изминении размера окна
{
  //запоминаем размеры окна
  WinWidth=width;
  WinHeight=height;
  
  //задаем размер окна
  glViewport(0,0,WinWidth,WinHeight);

  
  //задаём матрицу проекции
  glLoadIdentity();//заменяет текущюю матрицу на единичную
  gluOrtho2D(0,WinWidth-1,0,WinHeight-1);//
     
}
     

int main(int argc,char* argv[])
{
 
 glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); 
  
 glutInitWindowSize(WinWidth,WinHeight);//размер окна 
 glutInitWindowPosition(100,100);//позиция окна 
 glutCreateWindow("My first OpenGL Application");//заголовок окна 
 
 glClearColor(1,1,0.5,2);// перерисовывает экран 
 
 glutDisplayFunc(Display);
 glutKeyboardFunc(Keybord);
 glutReshapeFunc(Reshape); 
 glutWarpPointer(WinWidth/2,WinHeight/2);
 
 glutMainLoop();//организовывает цикл
 
 return 0;
}   




 
PM MAIL   Вверх
Aristokrat
Дата 22.3.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



спасибо всем, что посматрели вопрос , возможно даже подумали.Может кому понадобиться, решил эту проблему таким образом :

Код

    glColor3ub(0,100,100);
    glBegin(GL_QUADS);
      glVertex2f(left,bottom);
      glVertex2f(left,top);
      glVertex2f(right,top);
      glVertex2f(right,bottom);
    glEnd();

 
PM MAIL   Вверх
colyambas
Дата 3.4.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.1.2010
Где: Харьков

Репутация: нет
Всего: нет



у тебя не правильная пара координат p1(50, 150) и p2(50, 150)
поменяй p2(100, 200)

Добавлено через 1 минуту и 29 секунд
желательно обьявлять координаты под double, как того требует функция, на крайняк float, лишняя нагрузка с приведением типов
PM MAIL   Вверх
Rickert
Дата 3.4.2010, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Использовать надо GLdouble/GLfloat - это раз.
Во-вторых, для экранных координат абсолютно не нужны дробные числа. Необходимо использовать glVertex2i.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.