Возможно, проще всего реализовать это:
- 3 ползунка, по одному на каждого владельца.
- Каждый владелец получает назначение
their_slider_value / total_of_all_slider_values
.
Некоторые примеры:
Если A установлено на 0, B установлено на 1/2, а C установлено на полное, A получает 0%, B получает 33,3% и C получает 66,6%
A = A_slider / (A_slider + B_slider + C_slider)
= 0 / (0 + 1/2 + 1) = 0 = 0.0%
B = B_slider / (A_slider + B_slider + C_slider)
= (1/2) / (0 + 1/2 + 1) = 1/3 = 33.3%
C = C_slider / (A_slider + B_slider + C_slider) =
(1) / (0 + 1/2 + 1) = 2/3 = 66.6%
Если A, B и C все установлены на максимальное значение (или на минимальное значение), каждый из них получает 1/3
Преимущества:
- Он должен быть интуитивно понятным (относительные значения одинаковы; если
A_slider
в два раза больше, чем B_slider
, он получает в два раза больше ресурсов)
- Вы можете использовать существующие элементы управления (т. Е. Не изобретать новые элементы управления)
- Легко представить 0% (вам не нужно беспокоиться о перекрытии ползунков)
- Легко расширить до 4 или 5 или многих владельцев по мере необходимости.
Недостатки:
- Есть много способов представить одно и то же распределение
Если вы хотите приложить немного больше усилий, вы можете сопровождать ползунки текстом (в процентах) или графическим представлением (а не тем, что пользователь мог бы манипулировать) фактическими выделениями, которые представляли ползунки (либо заполненная полоса с распределениями или круговой диаграммой и т. д.)