
#include <GL/glut.h> //使用glutxxxx() ,glxxxx()
#include <stdio.h> //printf()
float teapotX=0 ,teapotY=0; ///-1.0~+1.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)
{
printf("%f %f\n",(x-150)/150.0, (y-150)/150.0);
teapotX =(x-150)/150.0; ///任務x :0..300 變成-1....+1
teapotY =-(y-150)/150.0; ///任務y:300...0變成-1...+1
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_DEPTH);
glutCreateWindow("week03");
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); //開始畫
glColor3f(124/255.0,87/255.0,105/255.0);///RGB三原色/255.0
glVertex2f((156-150)/150.0, -(35-150)/150.0);///設定4個點 4個點會形成形狀
glVertex2f((138-150)/150.0, -(59-150)/150.0);
glVertex2f((124-150)/150.0, -(87-150)/150.0);
///方位計算((0...150...300)-150) /150.0== -1~+1;
/// 1 計算位址x,y
//// |
//// -1 一 |一1
/// |
//// -1
glEnd(); //畫完
glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN){
printf("glVertex2f((%d-150)/150 ,-(%d-150)/150;\n",x,y);
}
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
沒有留言:
張貼留言