如何正確插入2個歐拉角與給定時間(或速度)之間?在給定時間內插歐拉角/旋轉矩陣
例如,我想實現一個簡單的眨眼,首先旋轉蓋子,然後再次。眨眼的時間應該在50到500毫秒之間。目前我簡單地計算出x值(對於向下):
Eigen::Vector3f rotateLeftLidDown(float step)
{
return Eigen::Vector3f(-step*COMPLETE_CLOSURE,0,0);
}
//INTERPOLATION
float duration =gen_random_float(0.05f,0.5f);
for(float i=0;i<1;i=i+(duration))
{
LeftLid.push_back(rotateLeftLidDown(i));
}
for(float i=1;i>0;i=i-(duration))
{
LeftLid.push_back(rotateLeftLidUp(i));
}
每個計算步驟是稍後從袋子中彈出,並且在一個100hertz率施加到節點..這種方法可以快速閃爍或慢,但它似乎並不正確。我不考慮眼瞼的速度,而且這裏的「內插」真的很髒......將歐拉變換成四元數或旋轉矩陣更好嗎?
像眨眼(500毫秒),認爲在70毫秒內向下280毫米/秒的峯值速度和打開眼瞼約100毫米/秒的功能將真的幫助我。
我不清楚你實際上在這裏問什麼。你在問數學或代碼嗎? – doctorlove
[旋轉矩陣之間的插值]的可能的重複(http://stackoverflow.com/questions/5580283/interpolating-between-rotation-matrices) – Ali
即時通訊詢問代碼如何正確實現像閃爍給定的速度和持續時間眨眼間 – EBBLER