我感觉这块应该有问题:
[mw_shl_code=c,true]q0 = q0 + (-q1*gx - q2*gy - q3*gz) * halfT;
q1 = q1 + ( q0*gx + q2*gz - q3*gy) * halfT;
q2 = q2 + ( q0*gy - q1*gz + q3*gx) * halfT;
q3 = q3 + ( q0*gz + q1*gy - q2*gx) * halfT;
norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
q0 = q0 / norm;
q1 = q1 / norm;
q2 = q2 / norm;
q3 = q3 / norm;[/mw_shl_code]
是不是应该改成:
[mw_shl_code=c,true]temp0 = q0 + (-q1*gx - q2*gy - q3*gz) * halfT;
temp1 = q1 + ( q0*gx + q2*gz - q3*gy) * halfT;
temp2 = q2 + ( q0*gy - q1*gz + q3*gx) * halfT;
temp3 = q3 + ( q0*gz + q1*gy - q2*gx) * halfT;
norm = sqrt(temp0*temp0 + temp1*temp1 + temp2*temp2 + temp3*temp3);
q0 = temp0 / norm;
q1 =temp1 / norm;
q2 = temp2 / norm;
q3 = temp3 / norm;[/mw_shl_code]
|