2016-05-12 7 views
-1

明日は私の研究室の外見を理解しているようですが、誰かがコードを説明できるのであれば大きな助けになるでしょう。以下の円機能を強調してください。可能であれば、このコードで何が間違っているかを見ると、出力を見ることはできません(白い画面のみ)。OpenGL円投影。いくつかの説明が必要です

#include<GL/glut.h> 
    #include<stdio.h> 
    #define PI 3.14 

    void circle() 
    { 
    glClear(GL_COLOR_BUFFER_BIT); 

    float i; 
     float X=350,Y=630; 
     float Radius=5; 

     float DEG2RAD=2*PI/180; 

     glColor3f(0,0,0); 

     glBegin(GL_LINE_LOOP); 

     for(i=0;i<360;i++) 

    { 

     float DEGINRAD=i*DEG2RAD; 

     glVertex3f(X+cos(DEGINRAD)*Radius,Y+sin(DEGINRAD)*Radius,0); 



    } 

    glEnd(); 

glFlush(); 
} 

void myinit() 
{ 
glClearColor(1.0,1.0,1.0,1.0); 
glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluOrtho2D(0,499,0,499); 

} 
void main(int argc,char **argv) 
{ 
glutInit(&argc,argv); 
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 
glutInitWindowSize(500,500); 
glutCreateWindow("Circle"); 
glutDisplayFunc(circle); 
myinit(); 
glutMainLoop(); 
} 
+1

あなたの質問は何ですか? – immibis

+0

これは有効なCでも有効なC++でもありません。あなたがこれから何かを学ぶことを望むなら、より良い学習資源を手に入れよう。 –

答えて

1

DEG2RAD = 2 * PI/180;

これは間違った式は、これを使用している:

DEG2RAD = PI/180.0f。

それとも

DEG2RAD = 2.0fの*のPI/360.0f。

もYシフトはそれだけ数学の画面がこの範囲から別の値を選択

Y = [5 .... 495]

0

オフです。ループ(for)は、円の中心の周りにそれぞれ次数の頂点を作成します。 DEG2RAD=2.0f*PI/360.0f;をmofed8461が既に述べたように変更し、円が画面上にあるように中心(X、Y)を配置してください。

関連する問題