Sono di nuovo qui con un problema "babbo" ma la cosa strana è che faccio cose incredibili in Xna e mi perdo per babbarie in C#. Ma come è possibile? No non è questa la domanda...
Ero abituato in VB5 a tracciare pixel su una picturebox e vederli tracciare uno per uno, oppure - sempre se volevo - potevo far apparire la picturebox solo alla fine del tracciato e vederlo completo, applicando il famoso "AutoRedraw" a picturebox.
Col C.... C# riesco a far questo solo nel passaggio dalla grafica vettoriale alla grafica raster, mentre all'interno del ciclo della grafica raster non funziona. Ecco il codice:
codice:
//creo una bitmap "vuota" che ha solo delle misure
bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//associo una grafica alla bitmap appena creata
Graphics gra = Graphics.FromImage(bit);
//per riempire le forme
SolidBrush bru = new SolidBrush(Color.Blue);
//disegno un cerchio pieno di centro P0,Q0 e raggio ra con il brush e l'unità U
FillCircle(gra, P0, Q0, R, bru, U);
//aggiorno la pictureBox con la nuova bitmap
pictureBox1.Image = bit;
//ora traccio i pixel
for (int i = 0; i < t; i++)
{
//...
//(calcolo le coordinate del pixel P e Q)
if (P > 0 & P < pictureBox1.Width & Q > 0 & Q < pictureBox1.Height)
bit.SetPixel(P, Q, Color.DarkRed);
//aggiorno di nuovo la pictureBox ad ogni pixel tracciato
pictureBox1.Image = bit;
}
Io vorrei vedere il cerchio e dopo - uno ad uno - vorrei vedere ogni pixel che si aggiunge nel tracciato, infatti faccio aggiornare la picturebox all'interno del ciclo. E invece vedo il cerchio e tutto il tracciato completo "di botto". M-ma p-perc-chè? Comincio a balbettare.