Fla*_*ape 0 javascript c++ scalar direct3d quaternions
所以,我正在将一些c ++转换为javascript,我真的需要知道D3DX如何定义它们的四元数运算符.
//Here's the c++ version
D3DXQUATERNION Qvel = 0.5f * otherQuat* D3DXQUATERNION(angVel.x, angVel.y, angVel.z, 0);
//Here's the js quat multiplication
function quat_mul(q1, q2) {
return
[q1.x * q2.w + q1.y * q2.z - q1.z * q2.y + q1.w * q2.x,
-q1.x * q2.z + q1.y * q2.w + q1.z * q2.x + q1.w * q2.y,
q1.x * q2.y - q1.y * q2.x + q1.z * q2.w + q1.w * q2.z,
-q1.x * q2.x - q1.y * q2.y - q1.z * q2.z + q1.w * q2.w]
Run Code Online (Sandbox Code Playgroud)
标量操作quat*0.5f是这样的吗?
quat.x *= .5;
quat.y *= .5;
quat.z *= .5;
quat.w *= .5;
Run Code Online (Sandbox Code Playgroud)
小智 6
根据这个链接,就像你说的那样(以及四元数系统中):
inline D3DXQUATERNION& D3DXQUATERNION::operator *= (FLOAT f)
{
x *= f;
y *= f;
z *= f;
w *= f;
return *this;
}
Run Code Online (Sandbox Code Playgroud)