java - 如何在多次计算后更改变量的值

标签 java vector normalize

以下 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/

相关文章:

vector - XNA 2D 矢量角 - 计算的正确方法是什么?

c++ - 交换后 vector 会保持连续吗?

python - 标准化或规范化分类值

java - Android:获取房间数据库中具有特定代码的项目数

java - 如何将滚动条添加到 Vaadin 布局

java - JSP/Java/Tomcat | <jsp :inlude> Class not Found

c++ - 将结构复制到 vector

python - 如何使用 sklearn.preprocessing.normalize 规范化 DataFrame 的列?

c - 如何使用 ICU4C 规范化字符串?

java - A Switch Java 问题 : case expressions must be constant expressions