Perhaps the easiest to implement would be this:
- 3 sliders, one for each owner.
- Each owner gets assigned
their_slider_value / total_of_all_slider_values
.
Some examples:
If A is set to 0, B is set to 1/2 and C is set to full, A gets 0%, B gets 33.3% and C gets 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%
If A, B, and C are all set at max value (or to the min value), they each get 1/3
Advantages:
- It should be intuitive (the relative values are the same; if
A_slider
is twice as full as B_slider
, it gets twice an many resources)
- You can use existing controls (i.e. it doesn't invent new controls)
- It's easy to represent 0% (you don't have to worry about sliders overlapping)
- It is easy to extend to 4 or 5 or an many owners as you need.
Disadvantages:
- There are many ways to represent the same allocation
If you wanted to put in a little more effort, you could accompany the sliders with text (percentages) or a graphical representation (not something the user could manipulate) of the actual allocations that the sliders represented (either a bar filled in with the allocations, or a pie chart, etc)