Algorithm 三角形物体在平面上的位置检测
我的代码如下;我想得到一个三角形的坐标位置,这个三角形在按下一个键后在一个平面上移动。如果我的代码错了,请改正。我完全是OpenGL的初学者Algorithm 三角形物体在平面上的位置检测,algorithm,opengl,Algorithm,Opengl,我的代码如下;我想得到一个三角形的坐标位置,这个三角形在按下一个键后在一个平面上移动。如果我的代码错了,请改正。我完全是OpenGL的初学者 float rot=90; float forwd=0; float uprwd=0; switch (key) { case 'q': exit(0); break; case 'a': { forwd-=0.2; } break;
float rot=90;
float forwd=0;
float uprwd=0;
switch (key) {
case 'q':
exit(0);
break;
case 'a':
{
forwd-=0.2;
}
break;
case 'd':
{
forwd+=0.2;
}
break;
case 'w':
{
uprwd+=0.2;
}
break;
case 's':
{
uprwd-=0.2;
}
break;
case 'r':
{
rot+=20;
}
break;
case 't':
{
rot-=20;
}
break;
}
我怎样才能找到三角形在平面上的坐标位置?它也在平面上旋转和移动。谢谢。旋转和/或平移三角形时,您正在更改其坐标。例如,GLTRANSTEF和glRotatef将变换矩阵应用于三角形的基本位置(0.2、0.0、0.0)。如果要跟踪三角形的新位置,还必须将这些变换(,)应用于跟踪三角形坐标的向量。旋转和/或平移三角形时,要更改其坐标。例如,GLTRANSTEF和glRotatef将变换矩阵应用于三角形的基本位置(0.2、0.0、0.0)。如果要跟踪三角形的新位置,还必须将这些变换(,)应用于跟踪三角形坐标的向量。我猜是这样,但我将如何用代码控制?你能给我一些想法吗?嗯,一种方法是只滚动自己的函数,在坐标向量上进行平移/旋转。它背后的数学并不需要大量的工作。如果你在3维空间旋转(X,Y,Z),你可以让你的旋转函数应用X=rcos(θ)sin(phi),Y=rsin(θ)sin(phi),Z=rcos(phi)。我猜是这样,但我如何用代码控制你能给我一个想法吗,一种方法是只滚动自己的函数,在坐标向量上进行平移/旋转。它背后的数学并不需要大量的工作。如果你在3维(X,Y,Z)中旋转,你可以让你的旋转函数应用X=rcos(θ)sin(φ),Y=rsin(θ)sin(φ),Z=rcos(φ)。
void display (void) {
{
glPushMatrix();
glLoadIdentity();
glTranslatef(forwd,uprwd,-6);
glRotatef(rot, 0.0, 0.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f( 0.2, 0.0, 0.0 );
glVertex3f( 0.0, 0.2, 0.0 );
glVertex3f( 0.0, 0.0, 0.2 );
glEnd();
glPopMatrix();
glutSwapBuffers();
}