gpt4 book ai didi

vector - 优先考虑向量的Y值

转载 作者:行者123 更新时间:2023-12-01 23:17:07 26 4
gpt4 key购买 nike

当限制向量时myVector.limit(10);你能给Y值“优先”吗? IE 从向量上的 X 中减去但不触及 Y?我正在考虑使用以下伪代码

if(myVector.mag()>=10)
{
myVector.x--;
}

这是一个“好”主意还是有更好的方法来解决这个问题?

编辑:

我正在做的是试图限制汽车上坡时的速度。通过限制 X,我希望防止它只是“跳”上山。

最佳答案

我们无法告诉您这是否是一个好主意,因为这实际上取决于您想要做什么。

我会说,您的方法无法处理您希望将 PVector 限制为小于 y 值的情况。

但是可以肯定的是,没有什么可以阻止您单独处理 xy 值。您可以考虑使用 map()constrain() 函数。

//limits your `y` value to be between 0 and 10
myVector.y = constrain(myVector.y, 0, 10);

另一个提示是查看 the source codePVector#limit() 函数后面,非常简单:

 public PVector limit(float max) {
if (magSq() > max*max) {
normalize();
mult(max);
}
return this;
}

所有这一切都是为了使 PVector 的大小等于您传递给 limit() 函数的任何值。您可以执行类似于 y 值的操作。也许可以使用除法来计算出在给定 x 值的情况下,什么 y 值将为您提供目标幅度?

但就像我说的,你做什么实际上取决于你的目标是什么。

编辑:您还可以考虑更改存储运动的方式。不存储 X 速度和 Y 速度,而是存储角度和速度。

换句话说,跟踪您前进的方向以及前进的速度。然后你可以使用cos()sin()来计算X速度和Y速度。那么你只需要限制整体速度,而不需要单独限制Y速度。

关于vector - 优先考虑向量的Y值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39712053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com