以下 Java 代码用于使用变量 dx 和 dy 标准化 vector 。
我的问题是,第二次计算是使用更改后的 dx 变量执行的,这给了我错误的 dy 值。 我如何防止这种情况或在计算后更改这两个值?
提前感谢您的回答
public void rescale() {
dx = (1/(Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)))) * dx;
dy = (1/(Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)))) * dy;
}
最佳答案
将 dx
存储在临时变量中,以便保留原始值。
public void rescale() {
double dxTmp = dx;
dx = (1/(Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)))) * dx;
dy = (1/(Math.sqrt(Math.pow(dxTmp, 2) + Math.pow(dy, 2)))) * dy;
}
关于java - 如何在多次计算后更改变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886649/