2024年3月4日 星期一

week03 mouse

 #include <GL/glut.h>

#include <stdio.h>

void display()

{

    glutSolidTeapot(0.3);

    glutSwapBuffers();

}


void mouse (int button, int state, int x, int y)

{

    printf("Hello World\n");

}



int main(int argc, char*argv[])

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week03 mouse");


    glutDisplayFunc(display);

    glutMouseFunc(mouse);


    glutMainLoop();

}





#include <GL/glut.h>
#include <stdio.h>
void display()
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

void mouse (int button, int state, int x, int y)
{
    //printf("Hello World\n");
    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("week03 mouse");

    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);
    glPushMatrix();
    glTranslatef(teapotX, teapotY, 0);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}

void mouse (int button, int state, int x, int y)
{

    teapotX = (x-150)/150.0;
    teapotY = -(y-150)/150.0;
}


int main(int argc, char*argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week03 mouse");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);

    glutMainLoop();
}




#include <GL/glut.h>
#include <stdio.h>
float teapotX =0, teapotY = 0;
float angle = 0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glRotatef(angle,0 ,0, 1);
    //glTranslatef(teapotX, teapotY, 0);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}

void mouse (int button, int state, int x, int y)
{

    teapotX = (x-150)/150.0;
    teapotY = -(y-150)/150.0;
}

void motion (int x, int y)
{
    angle = x;
    display();
}


int main(int argc, char*argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week03 mouse");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();
}




#include <GL/glut.h>
#include <stdio.h>
float teapotX =0, teapotY = 0;
float angle = 0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(teapotX, teapotY, 0);
    glRotatef(angle,0 ,0, 1);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}
int method = 1;
int oldX = 0, oldY = 0;
void mouse (int button, int state, int x, int y)
{

    //teapotX = (x-150)/150.0;
    //teapotY = -(y-150)/150.0;
    oldX = x;
    oldY = y;
}

void motion (int x, int y)
{
    if(method==1){
        angle += x-oldX;
    }
    else if(method==2){
        teapotX += (x - oldX)/150.0;
        teapotY -= (y - oldY)/150.0;
    }
    oldX = x;
    oldY = y;
    display();
}

void keyboard(unsigned char key, int x, int y)
{
    if(key=='e') method=1;
    if(key=='w') method=2;

}

int main(int argc, char*argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week03 mouse");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}







沒有留言:

張貼留言