将X和Y速度缩放到C 中的-max和Max之间
Scale x and y velocities to between -MAX and MAX in c++
我试图在-max和max之间扩展一些x和y速度值并保持其比例。数字可以为负,零或正。这被用于对X和Y速度的速度限制。这是我得到的:
if(abs(velocities.x) <= MAX_TRANSLATIONAL_VELOCITY && abs(velocities.y) <= MAX_TRANSLATIONAL_VELOCITY)
return;
float higher = max(abs(velocities.x), abs(velocities.y));
velocities.x = (velocities.x / higher) * MAX_TRANSLATIONAL_VELOCITY;
velocities.y = (velocities.y / higher) * MAX_TRANSLATIONAL_VELOCITY;
这并不是真的有效,我正在应用的机器人正在激起。是否有一个标准方法可以实现这一目标?
谢谢。
要归一化向量,您不应将其组件除以其中任何一个的最大值,而应以其大小为矢量的欧几里得范围。
实际上,您不应该检查单个组件,首先您计算幅度,然后如果超过max_magnitude,则将矢量归一化并乘以max_magnitude。
float magnitude = sqrt(v.x*v.x + v.y*v.y);
if (magnitude > MAX_MAGNITUDE)
{
v /= magnitude; // I'm assuming overloaded operators here
v *= MAX_MAGNITUDE;
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 关于 std::min, std::max 中的比较运算符的混淆
- std::max() 函数与定点实现的比较中的问题
- 从自定义类获取对象向量中的 max 元素
- 如何使用3d的max 2016 SDK(C++)在插件中添加保存文件对话框?
- C++试图在给定max/min x/y/z值、要在集合中的n个点和要递增的m个值的情况下生成每一组可能的点
- 将X和Y速度缩放到C 中的-max和Max之间
- 如何处理windows.h中的max宏与std中的max冲突
- int max(一个变量)和 int max(int ,int)之间没有冲突,这是 C++ 中的一个函数
- c++ PPL 并行工作 - 归约类 'combinable' 中的函数 max()
- C++中的Max/Msp Past对象(超过阈值时增加一个值)
- 如何在c++中创建一个max函数来搜索数列中的最大值?
- 如何在 C++ 中查找向量的第 m 和第 n 个元素之间的 max 元素
- 无法在 GCC 中定义 IntType 的 MAX 值