You could normalize the vector magnitude (according to the max over the given ranges, say), to get hue values between 0 and 1, and then scale by a factor to avoid the roll-over in the upper end of the hue.
Or you could cook up a similar thing for RGB instead of HSV.
There are other ways, but this could give you some ideas to play with.
I included that surface plot3d to illustrate that one of those formulas make it behave something like this:
And I chose 0.833 for the scaling because that approximates magenta as an upper value for hue.
0.8333333333, 1.000000000, 1.00000000