Ciao
Forse può esserti utile questo controllo che ho realizzato:
Forse il codice può essere migliorato, comunque funziona abbastanza bene.
Nel costruttore ho inserito i colori che (pressapoco) avevi nell'immagine, ma puoi modificarli a piacere, magari anche con delle proprietà. Il codice è abbastanza commentato, comunque se non capisci qualcosa chiedi pure; inoltre tieni conto che l'avevo scritto in C#, e l'ho convertito con un tool, quindi il risultato potrebbe non essere perfetto: se qualcosa non va dimmelo 
Luca