x、y、z、a、b、c の 6 つの double 値があります。それらが変わるたびに、私は最小限を取る必要があります。
これまでのところ、私は使用Math.Min()
し、ゼロに等しくないかどうかをチェックしてそれらをリストに追加し、使用しList.min()
ました。ただし、値が変更されるたびに、リスト自体は更新されません。
プロセスは何千回もチェックしているため、迅速な方法が必要です。
- すべての変数をチェックします。
- それらの 1 つ以上が 0 の場合、比較しないでください。
- 他の値の最小値を取ります。
- ボタンを押したときに繰り返します。
コード:
private void calculateRatio()
{
xRatio = 100 * (xStepCount / xAbsoluteDelta);
yRatio = 100 * (yStepCount / yAbsoluteDelta);
zRatio = 100 * (zStepCount / zAbsoluteDelta);
aRatio = 100 * (aStepCount / aAbsoluteDelta);
bRatio = 100 * (bStepCount / bAbsoluteDelta);
cRatio = 100 * (cStepCount / cAbsoluteDelta);
}
private void selectAxis()
{
minRatio = 100 * (Math.Min((double)xRatio, Math.Min((double)yRatio, Math.Min((double)zRatio, Math.Min((double)aRatio, Math.Min((double)bRatio, (double)cRatio))))));
}
//without including zero, by updating every time step count changed.