Javascript 数学:3个旋转刻度盘,3个值应始终=100%
我有三个表盘:D1、D2和D3。它们的值应始终为100%,默认值分别为50%、25%和25% 当用户编辑D2或D3时,D1应充当第一个从中取出并放入的罐 问题出在这里:如果可编辑的刻度盘增加到超过D1保留点怎么办?我需要找到一种方法,使拨号盘的剩余拉力在此时不被编辑 我想我正在寻找一个优雅的解决方案,而不是黑客。有人有这样的解决办法吗Javascript 数学:3个旋转刻度盘,3个值应始终=100%,javascript,math,Javascript,Math,我有三个表盘:D1、D2和D3。它们的值应始终为100%,默认值分别为50%、25%和25% 当用户编辑D2或D3时,D1应充当第一个从中取出并放入的罐 问题出在这里:如果可编辑的刻度盘增加到超过D1保留点怎么办?我需要找到一种方法,使拨号盘的剩余拉力在此时不被编辑 我想我正在寻找一个优雅的解决方案,而不是黑客。有人有这样的解决办法吗 您要做的是解一个由三个函数组成的方程,如: X + Y + Z = K; 其中: X = x + a(dx) Y = y + b(dy) Z = z + c(
您要做的是解一个由三个函数组成的方程,如:
X + Y + Z = K;
其中:
X = x + a(dx)
Y = y + b(dy)
Z = z + c(dz)
K = 100
及
a
、b
和c
是函数x
、y
和z
是旋钮和按钮的当前值dx
、dy
和dz
是旋钮值的变化X
、Y
和Z
中的一个值的情况下求解,其中X
、Y
和Z
在0到100范围内
当
X
、Y
和Z
接近0或100时,您不会说应该发生什么-它们是否成比例减少,或者,超出或不足的部分是否适用于另一个非用户调节旋钮?只需将另外两个旋钮移动用户移动旋钮的一半。我问了我的问题,但没有详细说明为什么这是不够的。我将编辑以进一步解释拨盘1作为“保留”的概念@ChristopherBorgia如果你不能解释拨盘值的逻辑,那么对于希望提供帮助的人来说,这将是一个猜测游戏。只需将D1移动到其极限,然后移动另一个拨盘以接受剩余的更改。你真的没有更多优雅的选择了。谢谢@RobG给了我开始工作的方向。克里斯托弗,这通常是用微分学和相关的速率来解决的,因为你会有一个方程,其中有两个未知数,必须满足其他方程。通过估计其中一个未知数并求解另一个未知数,您可能会得到一个合理的解决方案。这只会让你接近,所以用结果做一个更好的估计,然后再继续,直到它足够接近。它在踢我的屁股。无论我做什么,他们也不会像我所期望的那样做出反应。我会继续尝试,但如果你有任何更多的建议,这将有很大帮助(哦,按比例减少是我要做的)。