好到真的是一直冒汗超級熱的= =
可能是天氣轉變太快肚子一直痛
所以上課時間耽誤了10分鐘
我的零遲到紀錄就這樣被破了 嗚嗚
第一節課
這個厲害的來了
之前我們教的都是靜止不動的茶壺
或是一堆不會亂動的東西
但是現在老師教的是一個厲害的 嘿嘿
自己旋轉
你們以為很難麻?
不 跟你們說 輕輕鬆鬆
Piece of cake 一片蛋糕ㄎㄎ
他就是會一直轉一直轉一直轉
厲害吧 為了證明我的不豪洨
厲害吧 為了證明我的不豪洨
所以我決定 ........
沒看過茶壺在這個方向對吧嘿嘿
告訴你 他是自己轉的
程式碼如下如下
#include <GL/glut.h>
float angle=0;
void display()
{
{
GLfloat pos[] = {0, 0, -1, 0};
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle, 0,0,1);
glTranslatef(0.5, 0, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glFlush();
}
void timer(int t)
{
glutTimerFunc(20, timer, 0);
angle++;
glutPostRedisplay();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutCreateWindow("TRT 3D");
glutDisplayFunc(display);
glutTimerFunc(20, timer, 0);
glutMainLoop();
}
嘿嘿 是不是輕鬆簡單明白呢 ㄎㄎ
第二節課
再來就是自己移動了
我知道讓他自己轉絕對是不厲害的東西
所以我們就來用滑鼠控制吧ㄎㄎ
有沒有看到!!!!!
他又不一樣ㄖㄖㄖㄖ
沒錯 我就是用滑鼠來控制的ㄎㄎ
想要學麻 嘿嘿
告訴你
讓你輕鬆簡單又可以自學的方式
就是 ...程式碼如下 ...哈哈
#include <GL/glut.h>
float angle=0, oldX=0, oldY=0;
void display()
{
{
GLfloat pos[] = {0, 0, -1, 0};
glLightfv(GL_LIGHT0,GL_POSITION, pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glTranslatef(0.5 , 0, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glFlush();
}
void timer(int t)
{
glutTimerFunc(20, timer,0);
///angle++;
glutPostRedisplay();
}
void mouse (int button,int state,int x,int y)
{
if(state==GLUT_DOWN) { oldX=x; oldY=y; }
}
void motion(int x, int y)
{
angle += (x -oldX);
oldX= x;
}
int main (int argc, char **argv)
{
glutInit(&argc,argv);
glutCreateWindow("TRT 3D");
glutDisplayFunc(display);
glutTimerFunc(20,timer,0);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
嘿嘿 是不是很容易阿
趕快用滑鼠試試看移動我們的茶壺吧 ~~~
再來就是雙茶壺然後掛上去ㄎㄎ
廢話不多說 直接看圖
有沒有看到掛上去ㄖ阿ㄎㄎ
有沒有很厲害呢 ㄎㄎㄎ
直接看程式碼 不掉大家胃口了
#include <GL/glut.h>
float angle=0, oldX=0, oldY=0;
void display()
{
{
GLfloat pos[] = {0, 0, -1, 0};
glLightfv(GL_LIGHT0,GL_POSITION, pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.45,0.14,0);
glRotatef(angle,0,0,1);
glTranslatef(0.45 , -0.1, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSolidTeapot(0.3);
glFlush();
}
void timer(int t)
{
glutTimerFunc(20, timer,0);
///angle++;
glutPostRedisplay();
}
void mouse (int button,int state,int x,int y)
{
if(state==GLUT_DOWN) { oldX=x; oldY=y; }
}
void motion(int x, int y)
{
angle += (x -oldX);
oldX= x;
}
int main (int argc, char **argv)
{
glutInit(&argc,argv);
glutCreateWindow("hw");
glutDisplayFunc(display);
glutTimerFunc(20,timer,0);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
快點去試試看吧 ㄎㄎ
第三節課
一上課就考試
但是我一下課就開始睡覺 ...
評鑑真的太累了 整夜沒睡 嗚嗚
累死了 不過還好的是 我還是有聽到 ㄎㄎ
其實不會很難 只是麻煩而已 哀哀
最後來個做體操
#include <GL/glut.h>
float angle=0,oldX=0,oldY=0;
void drawArm()
{
glPushMatrix();
glScalef(0.5,0.25,0.25);
glutSolidCube(1);
glPopMatrix();
}
void drawBody()
{
glPushMatrix();
glTranslatef(0,-0.5,0);
glRotatef(-90,1,0,0);
glutSolidCone(0.3,0.8,30,30);
glPopMatrix();
}
void display()
{
{
GLfloat pos[]={0,0,-1,0};
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.15,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.25,0,0);
//glutSolidTeapot(0.3);
drawArm();
glPushMatrix();
glTranslatef(0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.25,0,0);
drawArm();
glPopMatrix();
glPopMatrix();
//以上是右手,以下是左手(程式碼是一樣,只有正負號不一樣)這樣就可以做出兩隻手啦.
glPushMatrix();
glTranslatef(-0.15,0,0);
glRotatef(angle,0,0,-1);
glTranslatef(-0.25,0,0);
//glutSolidTeapot(0.3);
drawArm();
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,-1);
glTranslatef(-0.25,0,0);
drawArm();
glPopMatrix();
glPopMatrix();
drawBody();
glFlush();
}
void timer(int t)
{
glutTimerFunc(20,timer,0);
//angle++;
glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN){ oldX=x; oldY=y; }
}
void motion(int x, int y)
{
angle+=(x-oldX);
oldX=x;
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutCreateWindow("TRT 3D");
glutDisplayFunc(display);
glutTimerFunc(20,timer,0);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
第三節課
一上課就考試
但是我一下課就開始睡覺 ...
評鑑真的太累了 整夜沒睡 嗚嗚
累死了 不過還好的是 我還是有聽到 ㄎㄎ
其實不會很難 只是麻煩而已 哀哀
最後來個做體操
#include <GL/glut.h>
float angle=0,oldX=0,oldY=0;
void drawArm()
{
glPushMatrix();
glScalef(0.5,0.25,0.25);
glutSolidCube(1);
glPopMatrix();
}
void drawBody()
{
glPushMatrix();
glTranslatef(0,-0.5,0);
glRotatef(-90,1,0,0);
glutSolidCone(0.3,0.8,30,30);
glPopMatrix();
}
void display()
{
{
GLfloat pos[]={0,0,-1,0};
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.15,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.25,0,0);
//glutSolidTeapot(0.3);
drawArm();
glPushMatrix();
glTranslatef(0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.25,0,0);
drawArm();
glPopMatrix();
glPopMatrix();
//以上是右手,以下是左手(程式碼是一樣,只有正負號不一樣)這樣就可以做出兩隻手啦.
glPushMatrix();
glTranslatef(-0.15,0,0);
glRotatef(angle,0,0,-1);
glTranslatef(-0.25,0,0);
//glutSolidTeapot(0.3);
drawArm();
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,-1);
glTranslatef(-0.25,0,0);
drawArm();
glPopMatrix();
glPopMatrix();
drawBody();
glFlush();
}
void timer(int t)
{
glutTimerFunc(20,timer,0);
//angle++;
glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN){ oldX=x; oldY=y; }
}
void motion(int x, int y)
{
angle+=(x-oldX);
oldX=x;
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutCreateWindow("TRT 3D");
glutDisplayFunc(display);
glutTimerFunc(20,timer,0);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
OK 今天課程就到這邊囉~~~
沒有留言:
張貼留言