茶壺(查詢坐標)
#include <GL/glut.h> ///使用glut外挂
#include <stdio.h> ///todc:因爲要printf()
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); ///清空
glutSolidTeapot(0.3);
glutSwapBuffers(); ///交換兩倍的buffers
}
void mouse(int button,int state,int x,int y)
{ ///todc:左,中,右鍵 下,上 x坐標 y坐標
printf("button:%d
state:%d x:%d y:%d\n",button,state,x,y);
} ///TODC:印出這些值,觀察
int main(int argc,char ** argv)
{
glutInit(&argc,argv); ///glut初始設定
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);///顯示模式
glutCreateWindow("08160714");///開窗
glutDisplayFunc(display);///等一下要顯示的函式
glutMouseFunc(mouse);///TODC:我們注冊mouse函式
glutMainLoop();///主要迴圈
}
畫圖
#include <GL/glut.h>///使用glut外挂
int N=0,vx[3000],vy[3000];
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///清空
glBegin(GL_LINE_LOOP);
for(int
i=0;i<N;i++){
glVertex2f( (vx[i]-150)/150.0,-(vy[i]-150)/150.0 );
} ///減一半,再除一半 減一半,再除一半,加負號
glEnd();
glutSwapBuffers();交換兩倍的buffers
}
void motion(int x,int y)
{///mouse motion 再拖動它
vx[N]=x; 存vx值
vy[N]=y; 存vy值
N++;
display();///邊動mouse motion 邊畫display()
}
int main(int argc,char ** argv)
{
glutInit(&argc,argv);
///glut初始設定
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);///顯示模式
glutCreateWindow("08160714");///開窗
glutDisplayFunc(display);///等一下要顯示的函式
glutMotionFunc(mouse);///TODC:mouse
motion在動
glutMainLoop();///主要迴圈
}
三坐標
Translate xyz坐標 大小不動,角度不懂
Rotate 旋轉角度(angle,x,y,z) 大小不動,坐標不動
Scale 縮放大小
坐標不動,角度不動
沒有留言:
張貼留言