2020年3月17日 星期二

weeek03

#include <GL/glut.h>
#include <stdio.h>  //多打一個程式庫,為了打出printf
void display()
{

    glutSolidTeapot( 0.3 );
    glutSwapBuffers(); 
}

void mouse(int button,int state,int x,int y)
{
    printf("%d %d %d %d\n",button,state,x,y);  //顯示左(0)中(1)右(2)鍵、按下放開、xy座標
}

int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week02 YES!!!");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);  //新增一個函式
    glutMainLoop();
}
#include <GL/glut.h>
#include <stdio.h>
float teapotX=0,teapotY=0;  //設立xy座標

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);  //清除背景
    glPushMatrix();  //備份矩陣
        glTranslatef(teapotX,teapotY,0);  //移動
        glutSolidTeapot( 0.3 );   
    glPopMatrix();  //備份矩陣
    glutSwapBuffers();  
}

void mouse(int button,int state,int x,int y)
{
    printf("%f %f\n",(x-150)/150.0,(y-150)/150.0);  //控制茶壺xy位置
    teapotX=  (x-150)/150.0; //為了將x變成1到-1之間
    teapotY= -(y-150)/150.0;  //為了將y變成1到-1之間
}

int main(int argc, char**argv)
{
    glutInit(&argc,argv);  
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);buffer,有3D
    glutCreateWindow("week02 YES!!!"); 
    glutDisplayFunc(display);  
    glutMouseFunc(mouse);
    glutMainLoop();  
}

#include <GL/glut.h>
#include <stdio.h>
float teapotX=0,teapotY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glVertex2f((142-150)/150.0,-(99-150)/150.0);
    glVertex2f((129-150)/150.0,-(71-150)/150.0);
    glVertex2f((93-150)/150.0,-(74-150)/150.0);
    glVertex2f((93-150)/150.0,-(116-150)/150.0);
    glVertex2f((154-150)/150.0,-(154-150)/150.0);
    glVertex2f((197-150)/150.0,-(130-150)/150.0);
    glVertex2f((198-150)/150.0,-(79-150)/150.0);
    glVertex2f((161-150)/150.0,-(71-150)/150.0);
    glVertex2f((150-150)/150.0,-(102-150)/150.0);   //貼上點出的座標位置
    glEnd();
    glutSwapBuffers();
}

void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)
    {
        printf("glVertex2f((%d-150)/150.0,-(%d-150)/150.0)\n",x,y);  //印出點到的位置
    }
}

int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02 YES!!!");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}

#include <GL/glut.h>
#include <stdio.h>
float teapotX=0,teapotY=0;
void display()
{
    glClearColor(183/255.0,203/255.0,87/255.0,1);  //選擇整個背景顏色
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glColor3f(206/255.0,123/255.0,93/255.0);  //選擇顏色
    glVertex2f((65-150)/150.0,-(82-150)/150.0);  //要畫的點
    glVertex2f((64-150)/150.0,-(212-150)/150.0);
    glVertex2f((183-150)/150.0,-(206-150)/150.0);
    glVertex2f((183-150)/150.0,-(96-150)/150.0);
    glEnd();
    glutSwapBuffers();
}

void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)
    {
        printf("glVertex2f((%d-150)/150.0,-(%d-150)/150.0)\n",x,y);
    }
}

int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02 YES!!!");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}


沒有留言:

張貼留言