Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Почему не работает функция графика в опен-жл

Вот у меня созданный мною код для рисование функции Улитки Паскаля в OpenGL--Почему то график функции не отображается--если даже заменить содержание формули на параболу? В чем дело? Ибо линии рисуются.

Код

#include <stdio.h>
#include "math.h"
#include <tchar.h>
#include "windows.h"
#include <GL/glut.h>
 int j=0;
 int a=5;
 int b=7;
 //int a[3]={1, 0.5, 0.9};
    //int b[3]={7, 0.4, 0.2};

float rav (float te) {
        return a*cos(te)+b;
    }

void display()
{
    int n = 300;
    glClear( GL_COLOR_BUFFER_BIT );
    glBegin( GL_LINES );
    glColor3d( 0.0, 0.0, 0.0 ); //1.Malyuyemo coordynatni osi chornym kolyorom
    glVertex2d( 0, -11 );
    glVertex2d( 0, 11 );
    glVertex2d( -11, 0 );
    glVertex2d( 11, 0 );
    glColor3d( 0.5, 0.5, 0.5 ); //2.Malyuyemo coordynatnu sitku chornym kolyorom
    glVertex2d( 0.5, -11 );
    glVertex2d( 0.5, 11 );
    glVertex2d( 0.5, -11 );
    glVertex2d( 0.5, 11 );
    glVertex2d( 1, -11 );
    glVertex2d( 1, 11 );
    glVertex2d( 1.5, -11 );
    glVertex2d( 1.5, 11 );
    glVertex2d( 2, -11 );
    glVertex2d( 2, 11 );
    glVertex2d( 2.5, -11 );
    glVertex2d( 2.5, 11 );
    glVertex2d( 3, -11 );
    glVertex2d( 3, 11 );
    glVertex2d( 3.5, -11 );
    glVertex2d( 3.5, 11 );
    glVertex2d( 4, -11 );
    glVertex2d( 4, 11 );
    glVertex2d( 4.5, -11 );
    glVertex2d( 4.5, 11 );
    glVertex2d( 5, -11 );
    glVertex2d( 5, 11 );
    glVertex2d( 5.5, -11 );
    glVertex2d( 5.5, 11 );
    glVertex2d( 6, -11 );
    glVertex2d( 6, 11 );
    glVertex2d( 6.5, -11 );
    glVertex2d( 6.5, 11 );

    glEnd();
    glBegin(GL_LINE_STRIP);
    glColor3d( 0.0, 0.0, 0.0 );
    for(int i=0; i <= n; i++)
        {
            float x = (8/300)*i-4;
            float y = rav (x);
            glVertex2f( x, y );
        }
    glEnd();
    glutSwapBuffers();
}
void resize( int width, int height )
{
    glViewport( 0, 0, width, height );
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    static double invRatio = 5.0;
    gluOrtho2D( -invRatio, invRatio, -invRatio, invRatio );
}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
    glutInitWindowSize(600,600);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Point");
    glClearColor( 1.0, 1.0, 1.0, 1.0);
    glutDisplayFunc( display );
    glutReshapeFunc( resize );
    glutMainLoop();
    return 0;
}


void display()
{
    int n = 300;
    glClear( GL_COLOR_BUFFER_BIT );
    glBegin( GL_LINES );
    glColor3d( 0.0, 0.0, 0.0 ); //1.Malyuyemo coordynatni osi chornym kolyorom
    glVertex2d( 0, -11 );
    glVertex2d( 0, 11 );
    glVertex2d( -11, 0 );
    glVertex2d( 11, 0 );
    glColor3d( 0.5, 0.5, 0.5 ); //2.Malyuyemo coordynatnu sitku chornym kolyorom
    glVertex2d( 0.5, -11 );
    glVertex2d( 0.5, 11 );
    glVertex2d( 0.5, -11 );
    glVertex2d( 0.5, 11 );
    glVertex2d( 1, -11 );
    glVertex2d( 1, 11 );
    glVertex2d( 1.5, -11 );
    glVertex2d( 1.5, 11 );
    glVertex2d( 2, -11 );
    glVertex2d( 2, 11 );
    glVertex2d( 2.5, -11 );
    glVertex2d( 2.5, 11 );
    glVertex2d( 3, -11 );
    glVertex2d( 3, 11 );
    glVertex2d( 3.5, -11 );
    glVertex2d( 3.5, 11 );
    glVertex2d( 4, -11 );
    glVertex2d( 4, 11 );
    glVertex2d( 4.5, -11 );
    glVertex2d( 4.5, 11 );
    glVertex2d( 5, -11 );
    glVertex2d( 5, 11 );
    glVertex2d( 5.5, -11 );
    glVertex2d( 5.5, 11 );
    glVertex2d( 6, -11 );
    glVertex2d( 6, 11 );
    glVertex2d( 6.5, -11 );
    glVertex2d( 6.5, 11 );

    glEnd();
    glBegin(GL_LINE_STRIP);
    glColor3d( 0.0, 0.0, 0.0 );
    for(int i=0; i <= n; i++)
        {
            float x = (8/300)*i-4;
            float y = rav (x);
            glVertex2f( x, y );
        }
    glEnd();
    glutSwapBuffers();
}
void resize( int width, int height )
{
    glViewport( 0, 0, width, height );
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    static double invRatio = 5.0;
    gluOrtho2D( -invRatio, invRatio, -invRatio, invRatio );
}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
    glutInitWindowSize(600,600);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Point");
    glClearColor( 1.0, 1.0, 1.0, 1.0);
    glutDisplayFunc( display );
    glutReshapeFunc( resize );
    glutMainLoop();
    return 0;
}



Модератор: используйте подсветку кода

Это сообщение отредактировал(а) Alexeis - 14.6.2014, 11:53
Ответ:
Получается косинусоида.
Как улитку то сделать?

Присоединённый файл ( Кол-во скачиваний: 3 )