Allora la soluzione secondo me è molto facile.
Il tuo scopo è trovare una funzione (in senso matematico) che ti permetta di esprimere la lunghezza della tua barra in base al valore che tu hai.
L'intervallo di questo valore x è [-90,0].
Sai che per x = -90 la tua barra ha lunghezza y = 0 pixel.
Sai che per x = 0 la tua barra ha lunghezza massima, supponiamo nel nostro caso y = 200 pixel.
Hai due punti, adesso non ti resta che trovare l'equazione della retta passante per due punti tramite la formula
I punti in questione sono
(x1 = -90, y1 = 0) e (x2 = 0, y2 = 200)
Se li sostituisci e ti fai due conti semplicissimi ti viene fuori la funzione
y = (20/9)x + 200
Facendo la prova infatti e sostituendo -90 ottieni 0, sostituendo 0 ottieni 200.
Se metti -45 che è a metà dell'intervallo ti viene 100.
Ricordati che x deve essere float, perché quasi sicuramente ti verrà sempre fuori un numero in virgola. Dopodiché non ti resta che usare una funzione di qualche libreria che ti arrotonda il numero visto che la tua misura deve essere un intero in quando si tratta della lunghezza in pixel della barra.
In Java puoi usare il Math.Round e il fillRect, il primo per arrotondare e il secondo per disegnare il rettangolo.
Questa è la soluzione che mi è venuta in mente, magari ce ne sono altre e di più semplici. Spero comunque che possa darti una dritta.