struct Point{
float x;
float y;
};
使用这个结构我做了4分,并为它们分配了值 . 然后使用 Points
的实例创建图片中显示的线条 .
PO.x = -0.5f;
PO.y = 0.5f;
P1.x = -1.0f;
P1.y = -0.5f;
Q0.x = 0.5;
Q0.y = -1.0f;
Q1.x = 0.7f;
Q1.y = 0.1f;
glPushMatrix();
glLineWidth(2.5);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2f(PO.x, PO.y);//PO
glVertex2f(P1.x, P1.y);//P1
glVertex2f(Q0.x, Q0.y);//QO
glVertex2f(Q1.x, Q1.y);//Q1
glEnd();
glPopMatrix();
虚线应该是从点P0到Q0的过渡,因此是第四个 .
我所理解的是这种技术的概念,LERP,在两条线(或关键帧)之间创建中间帧 . 我不明白它是如何工作的 .
x = x_start + ((x_final - x_start) * time)// where time is a value between zero and one
以上是此技术的公式,但我如何将其应用到我的过剩应用程序中?
找不到任何使用GLUT和LERP来演示动画的在线资源 .
1 回答
每次没有用户输入时,都会调用idle函数 .
由于我有点我需要得到中间点,这是通过使用此函数完成的 .
此函数根据时间在线性线上绘制点 .
T0是中间关键帧,我插入了我的线的起点和终点 . 因此插值 .
没有定时器递增,它不会产生“动画”的效果
计算点后,使用绘制线函数创建线 .