Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <GLUT/glut.h>
- float shiftX,shiftY;
- float mouseX,mouseY;
- float g_pressed = 0;
- void display(void)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glTranslatef(shiftX,shiftY,0);
- glColor3d(0.0, 0.0, 0.0);//色
- glBegin(GL_LINE_LOOP);
- glVertex2d(-0.1f, -0.1f);//位置
- glVertex2d(0.1f, -0.1f);//位置
- glVertex2d(0.1f, 0.1f);//位置
- glVertex2d(-0.1f, 0.1f);//位置
- glEnd();
- glFlush();
- }
- void keyboard(unsigned char key, int x, int y)
- {
- switch (key) {
- case 'q':
- case 'Q':
- case '\033': /* '\033' は ESC の ASCII コード */
- exit(0);
- default:
- break;
- }
- }
- void mouse(int btn, int state, int x, int y){
- if(btn == GLUT_LEFT_BUTTON == state == GLUT_DOWN)
- {
- mouseX = x;
- mouseY = y;
- g_pressed = 1;
- }
- else if(btn == GLUT_LEFT_BUTTON == state==GLUT_UP)
- {
- g_pressed = 0;
- }
- }
- void motion(int x, int y) {
- {
- shiftX += (float)(x - mouseX);
- shiftY -= (float)(y - mouseY);
- glutPostRedisplay();
- }
- printf("X = %d : Y = %d\n" , x , y);//カーソルの座標を表示
- }
- void init(void)
- {
- glClearColor(1.0, 1.0, 1.0, 0.0);
- }
- int main(int argc, char *argv[])
- {
- glutInitWindowPosition(100, 100);//ウィンドウの位置
- glutInitWindowSize(600, 600);//ウィンドウの幅と大きさ
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_RGBA);
- glutCreateWindow(argv[0]);
- glutDisplayFunc(display);//描画処理が必要なとき。
- glutKeyboardFunc(keyboard);//キーボードの入力があったとき。
- glutMouseFunc(mouse);//マウスボタンが押されたか離されたとき。
- glutMotionFunc(motion);//マウスでドラッグが行われているとき。
- init();
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement