java - 创建距离和伤害的公式

标签 java formula distance

    public double getDamage(double distance){
        int damage1 = 30; // (0 - 38.1)
        int damage2 = 20; // (50.8 - *)
        double range1 = 38.1;
        double range2 = 50.8;

        double damage = 0; // FORMULA

        return damage;
    }

我尝试创建一个公式来计算距离所造成的伤害量。

(可变距离=) 0至38.1米将返回30点伤害。
50.8 直到 Inifite 它将返回 20 点伤害。
38.1 到 50.8 会线性下降 30 -> 20。

如何让这个方法发挥作用?
提前致谢。

最佳答案

听起来像这样:

double x = (distance - range1) / (range2 - range1);
if (x < 0)
  x = 0;
if (x > 1)
  x = 1;
return damage1 + x * (damage2 - damage1);

基本上,您遵循线性规则,并进行调整以保持在线性区间内。

关于java - 创建距离和伤害的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195094/

相关文章:

java - 仅在部分 html 文档中的链接中替换 &

java - 将 WebSocket 参数传递到编程端点

crystal-reports - 在 Crystal Reports 12 中显示没有数据的组

Python,Pairwise 'distance',需要一种快速的方法来完成

java - onPictureTaken() 错误,问题是无法将 RGB 转换为灰色,程序停止从 cvtcolor() 函数运行。?

java - 查找没有多对多关系的 Hibernate 对象

java - Apache HttpComponents BasicHttpClientConnectionManager

应用规则后 Excel 条件格式公式更改

java - 搜索当前颜色的和谐颜色

python - 聚类之间的距离 kmeans sklearn python