複習上週在Codeblock中
(1)File>New>Project. 選OpenGL專案>做茶壺
---------------------------------------------------------------------------------------------------------------------
#include <GL/glut.h>
///#include <GLUT/glut.h>//Apple
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
///glutMouseFunc(mouse);
///glotMotionFunc(motion);
glutMainLoop();
}
----------------------------------------------------------------------------------------------------------------------
hw2:
(2)茶壺點擊時顯示座標hw2:
------------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
printf("%d %d %d %d\n",button,state,x,y);
}
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func
glutMainLoop();
}
-----------------------------------------------------------------------------------------------------------------------
(3)茶壺點擊時顯示座標並且改變顏色
------------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
printf("%d %d %d %d\n",button,state,x,y);
glColor3f( 1,x/300.0 , y/300.0);
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func
glutMainLoop();
}
-----------------------------------------------------------------------------------------------------------------------
(4)茶壺點擊移動再放掉時顯示座標並且改變顏色
-----------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
printf("%d %d %d %d\n",button,state,x,y);
}
void motion(int x, int y)
{ /// Now motion
printf("%d %d\n",x,y);
glColor3f( 1,x/500.0 , y/500.0);
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500,500); ///big window
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func (button)
glutMotionFunc(motion); ///Now Drag
glutMainLoop();
}
-----------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
printf("%d %d %d %d\n",button,state,x,y);
}
void motion(int x, int y)
{ /// Now motion
printf("%d %d\n",x,y);
glColor3f( 1,x/500.0 , y/500.0);
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500,500); ///big window
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func (button)
glutMotionFunc(motion); ///Now Drag
glutMainLoop();
}
-------------------------------------------------------------------------------------------------------------------------
(5)利用茶壺圖形再加printf("glVertex2f( %.2f, %.2f);\n",(x-250)/250.0,-(y-250)/250.0 );去點擊外圍形狀,複製作標貼上,即可製作外圍形狀
-------------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
if(state==GLUT_DOWN)printf("glVertex2f( %.2f, %.2f);\n",(x-250)/250.0,-(y-250)/250.0 );
}
void motion(int x, int y)
{ /// Now motion
printf("%d %d\n",x,y);
glColor3f( 1,x/500.0 , y/500.0); ///500 for window size
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glBegin(GL_POLYGON);
glVertex2f( -0.00, 0.18);
glVertex2f( 0.22, 0.14);
glVertex2f( 0.28, -0.02);
glVertex2f( 0.28, -0.14);
glVertex2f( 0.19, -0.24);
glVertex2f( -0.20, -0.22);
glVertex2f( -0.31, -0.15);
glVertex2f( -0.43, -0.02);
glVertex2f( -0.44, 0.06);
glVertex2f( -0.39, 0.10);
glVertex2f( -0.27, 0.10);
glVertex2f( -0.24, 0.11);
glVertex2f( -0.22, 0.14);
glVertex2f( -0.02, 0.18);
glEnd();
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500,500); ///big window
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func (button)
glutMotionFunc(motion); ///Now Drag
glutMainLoop();
}
-------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
以下為老師示範↓↓↓
(6)
--------------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
if(state==GLUT_DOWN)printf("glVertex2f( %.2f, %.2f);\n",(x-250)/250.0,-(y-250)/250.0 );
}
void motion(int x, int y)
{ /// Now motion
printf("%d %d\n",x,y);
glColor3f( 1,x/500.0 , y/500.0); ///500 for window size
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glBegin(GL_POLYGON);
for(float angle=0; angle<3.1415926 *2; angle+= 3.1415926 / 100)
{
glVertex2f( 0.5*cos(angle), sin(angle));
}
glEnd();
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500,500); ///big window
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func (button)
glutMotionFunc(motion); ///Now Drag
glutMainLoop();
}
--------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>///printf()
#include <GL/glut.h>
void mouse(int button,int state, int x,int y)
{ ///This is mouse function
if(state==GLUT_DOWN)printf("glVertex2f( %.2f, %.2f);\n",(x-250)/250.0,-(y-250)/250.0 );
}
void motion(int x, int y)
{ /// Now motion
printf("%d %d\n",x,y);
glColor3f( 1,x/500.0 , y/500.0); ///500 for window size
glutPostRedisplay(); ///display();///wrong!!!
}
void display()
{
glBegin(GL_LINE_LOOP);
for(float angle=0; angle<3.1415926 *2; angle+= 3.1415926 / 100)
{
glVertex2f( 0.5*cos(angle), sin(angle));
}
glEnd();
glutSwapBuffers();
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500,500); ///big window
glutCreateWindow("04160355 in queen");
glutDisplayFunc(display);
glutMouseFunc(mouse); ///test the mouse func (button)
glutMotionFunc(motion); ///Now Drag
glutMainLoop();
}









沒有留言:
張貼留言