本文整理汇总了C++中Transform2D::xy方法的典型用法代码示例。如果您正苦于以下问题:C++ Transform2D::xy方法的具体用法?C++ Transform2D::xy怎么用?C++ Transform2D::xy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transform2D
的用法示例。
在下文中一共展示了Transform2D::xy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: translation
Transform2D Transform3D::projectTo2D(const arma::vec3& yawAxis, const arma::vec3& forwardAxis) const {
Transform2D result;
// Translation
arma::vec3 orthoForwardAxis = arma::normalise(arma::cross(yawAxis, arma::cross(forwardAxis, yawAxis)));
arma::vec3 r = translation();
Rotation3D newSpaceToWorld;
newSpaceToWorld.x() = orthoForwardAxis;
newSpaceToWorld.y() = arma::cross(yawAxis, orthoForwardAxis);
newSpaceToWorld.z() = yawAxis;
Rotation3D worldToNewSpace = newSpaceToWorld.i();
arma::vec3 rNewSpace = worldToNewSpace * r;
result.xy() = rNewSpace.rows(0, 1);
// Rotation
Rotation3D rot = rotation();
arma::vec3 x = rot.x();
arma::vec3 xNew = worldToNewSpace * x;
float theta_x_from_f = std::atan2(xNew[1], xNew[0]); // sin/cos
result.angle() = theta_x_from_f;
// std::cerr << "in = \n" << *this << std::endl;
// std::cerr << "out = \n" << result << std::endl;
return result;
}