Buongiorno,
ho bisogno di disegnare un rettangolo con la linea più spessa, mi sapete dire come si fa,
adesso è cosi
tft.drawRoundRect(160, 70, 160, 70, 4,TFT_RED);
come si fa ad avere la linea più spessa
grazie
Buongiorno,
ho bisogno di disegnare un rettangolo con la linea più spessa, mi sapete dire come si fa,
adesso è cosi
tft.drawRoundRect(160, 70, 160, 70, 4,TFT_RED);
come si fa ad avere la linea più spessa
grazie
Credo che per sicurezza tu debba specificare di quale display esattamente si parla, quale libreria stai usando, ed anche su quale MCU.
Comunque penso qualcosa del genere potrebbe funzionare (l'ho trovato in rete):
int thick = 3;
int radius = 5;
for (int i = 0; i < thick; i++) {
tft.drawRoundedRect(x + i, y + i, w - i*2, h - i*2, radius, TFT_RED);
}
Sì ok, allora è un circuito con esp32 e un tft ILI9488, uso la libreria TFT_espi
Potresti provare ad usare il metodo fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t radius, uint32_t color)
due volte di seguito e la seconda volta diminuisci le dimensioni quanto basta per ottenere lo spessore desiderato (sfalsando il posizionamento in X/Y del numero dei pixel di spessore del bordo)
Es:
tft.fillRoundRect(160, 70, 160, 70, 4, TFT_RED);
tft.fillRoundRect(162, 72, 156, 66, 4, TFT_BLACK); // 2 pixel di spessore
fill non riempie di rosso? Deve fare un rettangolo rosso e poi riempirlo con uno nero più piccolo...
Hai ragione, errore frutto del copia/incolla.
Va messo TFT_BLACK ovviamente.
Ho provato tutte e due le versioni che mi avete proposto qui
la prima proposta da @docdoc funziona ma il contorno non è nitidissimo
la seconda proposta da @cotestatnt funziona anche questa, è molto più nitido ma vedo dei flash sul quadrato nero, come faccio a toglierli?
Lo aggiorni continuamente?
Il metodo di doc doc, invece, fa semplicemente dei rettangoli concentrici spostando il punto iniziale e riducendo le dimensioni.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.