Я думаю, что, как только вы четко заявите, что вы имеете в виду, вы обнаружите, что большая часть работы сделана для вас ...
Я предполагаю, что вы хотите ограничить длину векторной величины (а не структуру векторных данных), чтобы она лежала в пределах указанного диапазона без изменения его направления, нет?
Итак:
if (v.length > max)
v.setlength(max)
else if (v.length < min)
v. setlength(min)
, где реализация length()
и setlength()
зависит от того, как вы сохранили свой вектор.
Если ваш вектор хранится в форме (угол, величина), это почти тривиально. Если хранится в декартовой форме (т. Е. (X, y, z)), вы получаете length
из теоремы Пифагора и setlength
должны масштабировать каждый компонент с коэффициентом desired_length/current_length
.