Week04
1.主题
a:平移
b:旋转
c:缩放
2.mouse操作
打开glut project
在main.cpp中输入以下程式码
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);
}
此程式码可以显示图片上的点坐标
再用标记复制可以直接copy至程式码中

加入程式码并完成两个三角形:
以下为程式码:
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
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);
}
void display()
{
glClearColor(150/255.0,170/255.0,55/255.0,1);
glClear(GL_COLOR_BUFFER_BIT);
glColor3ub(175,193,81);
glBegin(GL_POLYGON);
glVertex2f((147-150)/150.0,-(197-150)/150.0);
glVertex2f((124-150)/150.0,-(241-150)/150.0);
glVertex2f((181-150)/150.0,-(249-150)/150.0);
glEnd();
glBegin(GL_POLYGON);
glVertex2f((216-150)/150.0,-(147-150)/150.0);
glVertex2f((252-150)/150.0,-(111-150)/150.0);
glVertex2f((257-150)/150.0,-(173-150)/150.0);
glEnd();
glPushMatrix();
glBegin(GL_POLYGON);
for(float angle=0;angle<3.14159265357989*2;angle+=0.1)
{
glVertex2f(0.2*cos(angle),0.2*sin(angle));
}
glEnd();
glPopMatrix();
glPushMatrix();
glTranslatef(0,0.5,0);
glBegin(GL_POLYGON);
for(float angle=0;angle<3.14159265357989*2;angle+=0.1)
{
glVertex2f(0.2*cos(angle),0.2*sin(angle));
}
glEnd();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.5,0,0);
glBegin(GL_POLYGON);
for(float angle=0;angle<3.14159265357989*2;angle+=0.1)
{
glVertex2f(0.2*cos(angle),0.2*sin(angle));
}
glEnd();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("hello3D");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
3.附加







沒有留言:
張貼留言