2023年2月22日 星期三

旻_Week02

 主題:點線面色彩

實作  glColor3f(r,g,b);
          glVertex2f(x,y);
         實心茶壺、形狀


畫出茶壺 

#include <GL/glut.h>

void display()
{

    glutSolidTeapot(0.3);///畫出一個實心的茶壺,(小茶壺)它的大小
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面

}



在茶壺裡面再畫一個茶壺

#include <GL/glut.h>
void display()
{
    glColor3f(0,1,0);///綠色
    glutSolidTeapot(0.5);///畫出一個實心的茶壺,(大茶壺)它的大小

    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心的茶壺,(小茶壺)它的大小
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面
}




在茶壺加入頂點

#include <GL/glut.h>
void display()
{
    glColor3f(0,1,0);///綠色
    ///glutSolidTeapot(0.5);///畫出一個實心的茶壺,(大茶壺)它的大小
    glBegin(GL_POLYGON);///開始畫多邊形
        glVertex2f( 0, 1);
        glVertex2f(-1,-1);
        glVertex2f(+1,-1);
    glEnd();///結束畫

    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心的茶壺,(小茶壺)它的大小
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面這行,把顯示的
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面
}

#include <GL/glut.h>
void display()
{
    glColor3f(0,1,0);///綠色
    ///glutSolidTeapot(0.5);///畫出一個實心的茶壺,(大茶壺)它的大小
    glBegin(GL_POLYGON);///開始畫多邊形
        glColor3f(1,0,0);   glVertex2f( 0, 1);///紅色的頂點Vertex
        glColor3f(0,1,0);   glVertex2f(-1,-1);///綠色的頂點Vertex
        glColor3f(0,0,1);   glVertex2f(+1,-1);///藍色的頂點Vertex
    glEnd();///結束畫

    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心的茶壺,(小茶壺)它的大小
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面這行,把顯示的
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面
}

#include <GL/glut.h>    ///換算色彩法:除255.0
void display()
{
    glColor3f(247/255.0, 247/255.0, 247/255.0);
    glBegin(GL_POLYGON);    ///色彩可用滴管吸,編輯色彩
        glVertex2f( 1, 1);
        glVertex2f(-1, 1);
        glVertex2f(-1,-1);
        glVertex2f( 1,-1);
    glEnd();

    glColor3f(244/255.0, 209/255.0, 33/255.0);
    glBegin(GL_POLYGON);
        glVertex2f( ( 45-100)/100.0, -(134-100)/100.0);
        glVertex2f( ( 36-100)/100.0, -(171-100)/100.0);
        glVertex2f( (108-100)/100.0, -(179-100)/100.0);
        glVertex2f( (104-100)/100.0, -(117-100)/100.0);
        ///口訣:減一半、除一半、y變負號
    glEnd();

    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面這行,把顯示的
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面
}
#include <GL/glut.h>
#include <math.h>
void myCircle(float r, float x, float y)
{
    glBegin(GL_POLYGON);  ///開始畫多邊形
        for(float a = 0; a<2*3.141592653589793238462643383279; a+=0.01){
            glVertex2f( r*cos(a)+x, r*sin(a)+y);
        }
    glEnd();
}
void display()
{
    glColor3f(1,0,1); myCircle(0.6, 0, 0);///正中間

    glColor3f(1,0,0); myCircle(0.3, 0.5, 0.5);///右上角
    glColor3f(0,1,0); myCircle(0.3,-0.5, 0.5);///左上角
    glColor3f(1,1,0); myCircle(0.3,-0.5,-0.5);///左上角
    glColor3f(0,0,1); myCircle(0.3, 0.5,-0.5);///右上角

    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc,char *argv[])
{///上面是特別的main()函式,有很多參數
    glutInit(&argc, argv);///把GLUT開起來
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///上面這行,把顯示的
    glutCreateWindow("GLUT Shapes");///要開式窗
    glutDisplayFunc(display);///要顯示的對應函式
    glutMainLoop();///最後用main迴圈,壓在最後面
}










沒有留言:

張貼留言