Вы должны линейно интерполировать между шириной прямоугольника с прогрессом 0% и шириной прямоугольника с прогрессом 100%.EG:
float width_0 = 0.f; // or any other number of pixels
float width_100 = 250.f; // or any other number of pixels
Интерполяция работает следующим образом:
float interpolated_width = (width_100 - width_0) * progress + width_0;
Важно: progress
должно быть в диапазоне от 0 до 1!Поэтому вы можете захотеть изменить функцию CProgressBar::get()
или сначала разделить на 100.
Теперь вы можете просто визуализировать прямоугольник с новой шириной:
graphics->renderQd(CRect(x,y,interpolated_width,height));