我使用以下代码绘制4个链段链。如图所示,我需要获得点A,B,C,D的坐标。
我正在尝试实现基本的CCD逆运动学,并且基于鼠标坐标,我想移动链接A-D。这样做的第一步是获得目标点和点C之间以及C-D之间的矢量。为此,我需要在任何给定时间知道C,D的坐标。我怎么能这样做?
#define NUM_LINKS 4
#define l1 80
void drawLine(int l)
{
glColor3f(1,1,0);
glPointSize( 10.0 );
glBegin( GL_POINTS);
glVertex2f(0,0);
glEnd();
glBegin( GL_LINES);
glVertex2f(0,0);
glVertex2f(l,0); // l= 80
glEnd();
}
void drawArm()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
for(int i =0 ; i<NUM_LINKS; i++)
{
glRotatef(rotAngle[i],0,0,1);
drawLine(l1);
glTranslatef(l1,0,0);
}
glPopMatrix();
glFlush();
glutSwapBuffers();
glutPostRedisplay();
}