小编jam*_*456的帖子

Glm四元数slerp

我试图在glm中使用四元数做slerp.我在用

glm::quat interpolatedquat = quaternion::mix(quat1,quat2,0.5f)
Run Code Online (Sandbox Code Playgroud)

这些是我添加的库

#include <glm/gtc/quaternion.hpp>
#include <glm/gtx/quaternion.hpp>
#include <glm/gtx/euler_angles.hpp>
#include <glm/gtx/norm.hpp>
#include <glm\glm.hpp>
#include <glm\glm\glm.hpp>
using namespace glm;
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.我添加了所有glm四元数.hpp

错误是"quaternion"必须是类名或命名空间.

c++ opengl

4
推荐指数
1
解决办法
3866
查看次数

使用Eigen插值旋转(slerp)

我试图使用Eigen在2个四元数之间进行调整(认为这是最简单的).

我发现了两个不同的例子

一,

for(int i = 0; i < list.size(); i++)
{
  Matrix3f m;
  Quaternion<float,0> q1 = m.toRotationMatrix();

  Quaternion<float,0> q3(q1.slerp(1,q2));
  m_node->Rotation(q3.toRotationMatrix());
}
Run Code Online (Sandbox Code Playgroud)

第二,

Vec3 slerp(const Vec3& a, const Vec3& b, const Real& t)
{
 Quaternionf qa;
 Quaternionf qb;
 qa = Quaternionf::Identity();
 qb.setFromTwoVectors(a,b); 
  return (qa.slerp(t,qb)) * a; 
 }
Run Code Online (Sandbox Code Playgroud)

我真的不能说哪一个是正确的.关于此的文档并不多.任何人都可以告诉我是否应该使用不同的库?或者我如何使用eigen进行slerp.

c++ opengl quaternions eigen

3
推荐指数
2
解决办法
7448
查看次数

标签 统计

c++ ×2

opengl ×2

eigen ×1

quaternions ×1