#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();
}
#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 <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();
}




沒有留言:
張貼留言