以下Java代码用于使用变量dx和dy标准化向量。
我的问题是第二次计算是用更改的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;
}