java平衡了三个参数,因此当其中一个参数发生变化时,数量不会发生变化
我需要平衡这三个变量,这样当给其中一个变量加上一个值时,其他变量会按比例变化,从而使金额保持原始状态。 例如,尘降4中的身体三角形https://i.imgur.com/Q2cv9Xm.jpg
我尝试了一些东西,但不正确,实际上不起作用
首先,我只是简单地将缺失的数量添加到其他变量中,但没有比例性
第二步,我试图通过比例来平衡:
public class Triangle()
{
float a = 0.33f;
float b = 0.33f;
float c = 0.33f;
static float sum = 0.99f;
static float maxVal = 0.97f;
void AddA(float value) {
if (a + value <= maxVal) {
a += value;
float ratio1 = b/sum;
float ratio2 = c/sum;
// difference between needed sum and current
float remainderSum = a+b+c-sum;
// the excess part is proportional to b
float rem1 = remainderSum*ratio1;
// the excess part is proportional to c
float rem2 = remainderSum*ratio2;
// subtract excess
b -= rem1;
c -= rem2;
}
}
}
结果:
Add(0.5f); =>
Sum: 1.1566666666666665
ABC: 0.8300000000000001/0.16333333333333325/0.16333333333333325
但结果是总和不正确
# 1 楼答案
# 2 楼答案
每增加一个变量,你就想减少另外两个变量。如果每一个变量都减少一半,那么这三个变量的总和保持不变
伪代码: