本文整理汇总了C++中Quat::FromAxisAngle方法的典型用法代码示例。如果您正苦于以下问题:C++ Quat::FromAxisAngle方法的具体用法?C++ Quat::FromAxisAngle怎么用?C++ Quat::FromAxisAngle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Quat
的用法示例。
在下文中一共展示了Quat::FromAxisAngle方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Pitch
void Camera::Pitch( float angle )
{
Vec3 dir = _at - _pos;
Vec3 axis = dir.cross(Vec3(0, 1, 0));
axis.normalize();
Quat q;
q.FromAxisAngle(axis, angle * QUAT_PI / 360.f);
q.ToMatrix().TransformVec3(dir.x, dir.y, dir.z);
_at = _pos + dir;
UpdateViewProj();
}
示例2: Yaw
void Camera::Yaw(float angle) {
Vec3 dir = _at - _pos;
Quat q;
q.FromAxisAngle(Vec3(0.f, 1.0f, 0.f), angle * QUAT_PI / 360.f);
q.ToMatrix().TransformVec3(dir.x, dir.y, dir.z);
_at = _pos + dir;
//Sys_Printf("%f %f %f \n", _dir.x, _dir.y, _dir.z);
//_at.rotatexzBy(angle, vec3(_pos.x, _pos.y, _pos.z));
//Sys_Printf("%f %f %f \n", dir.x, dir.y, dir.z);
UpdateViewProj();
}
示例3: RotateByAxis
void Camera::RotateByAxis( Vec3 axis, float angle ) {
Quat q;
q.FromAxisAngle(axis, angle * QUAT_PI / 360.f);
q.ToMatrix().TransformVec3(_pos.x, _pos.y, _pos.z);
UpdateViewProj();
}