Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo
Find X9 Ultra è lo smartphone che tanti aspettavano, e finalmente è arrivato anche in Italia. Abbiamo provato il flagship di OPPO per diverse settimane, e siamo volati fino in Cina alla sua presentazione ufficiale. Tutto gira intorno al suo incredibile comparto fotografico in collaborazione con Hasselblad e con un totale di sei fotocamere. Il resto è un mix di specifiche di altissimo livello, così come il prezzo. Vi raccontiamo tutto nella nostra recensione completa.
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Il nuovo Deebot X12 OmniCyclone abbina un sistema di raccolta dello sporco senza sacchetto, un rullo di lavaggio esteso e la tecnologia FocusJet per intervenire più efficacemente sulle macchie più persistenti. Un robot completo e preciso che aiuta a tenere puliti i pavimenti di casa con il minimo sforzo
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2 implementa un mocio a nastro che esegue una pulizia dettagliata del pavimento di casa, in abbinamento ad un potente motore di aspirazione della polvere: un prodotto ideale per gestire in autonomia e con grande efficacia le necessità di pulizia dei pavimenti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2007, 09:49   #1
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
[java - awt] facile o difficile?

Codice:
private class DrawingPanel extends JPanel
  {
    private int fromLeftMargin = 2;
    private Graphics graphics;
    //private int hScale = 40;
    private int vScale = 40;
    DrawingTree build(AVLNode t, int level)
    {
      if(t.isEmpty()) return null;
      else
      {
        DrawingTree left = build(t.left, level + 1);
        String str = t.element.toString() + "|" + t.height;
        Rectangle2D rect = graphics.getFontMetrics().getStringBounds(str, graphics);
        int width = (int)Math.round(rect.getWidth())+2;
        int height = (int)Math.round(rect.getHeight());
        int dx = (int)Math.round(rect.getCenterX());
        int dy = (int)Math.round(rect.getCenterY());
        int x = fromLeftMargin + dx + 2;
        int y = vScale*level + dy;
        fromLeftMargin += width;
        DrawingTree right = build(t.right, level + 1);
        return new DrawingTree(t.element, x, y, width, height, left, right, t.height);
      }
    }
    void draw(DrawingTree dt)
    {
      if(dt != null)
      {
        String str = dt.element.toString() + "|" + dt.nodeHeight;
        graphics.drawRect(dt.x, dt.y, dt.width, dt.height);
        graphics.drawString(str, dt.x+1, dt.y + dt.height - 2);
        if(dt.left != null)
        {
          int x1 = dt.x + dt.width/2;
          int y1 = dt.y + dt.height;
          int x2 = dt.left.x + dt.left.width/2;
          int y2 = dt.left.y;
          graphics.drawLine(x1, y1, x2, y2);
        }
        draw(dt.left);
        if(dt.right != null)
        {
          int x1 = dt.x + dt.width/2;
          int y1 = dt.y + dt.height;
          int x2 = dt.right.x + dt.right.width/2;
          int y2 = dt.right.y;
          graphics.drawLine(x1, y1, x2, y2);
        }
        draw(dt.right);
      }
    }
    public void paintComponent(Graphics g)
    {
      super.paintComponent(g);
      graphics = g;
      DrawingTree dt = build(root,1);
      draw(dt);
      fromLeftMargin = 2;
    }
  }
mi è stata data questa roba che disegna un albero binario da qualche parte...produce una rappresentazione un po sgrausa ma efficace; i nodi sono formati da dei rettangoli con dentro elemento.toString()...quello che mi chiedo è: mi piacerebbe (trattandosi nel mio caso specifico di alberi avl con altezza memorizzata nel nodo) colorare l interno di questi rettangolini (senza inficiare la lettura dei dati dell elemento ovviamente) per livello; in altre parole vorrei che tutti i nodi di altezza x abbiano colore uguale, tutti quelli di altexxa y abbiano colore uguale, eccetera...
avendo ancora quasi zero esperienza di grafica mi chiedevo se cio fosse una stupidaggine da realizzare o se, per come è fatta quella classetta (credo fatta ad hoc per far provare la semplice esercitazione che ha dato sugli alberi), sarebbe difficile
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 12:15   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Prova a mettere

graphics.setColor(Color.YELLOW);
graphics.fillRect(dt.x, dt.y, dt.widht, dt.height);
graphics.setColor(Color.BLACK);

prima di:

graphics.drawRect(dt.x, dt.y, dt.width, dt.height);

nel metodo draw.

Dovrebbe colorarti i nodi di giallo. Se funziona allora è sufficiente creare una mappa o array indice-colore e trasformare la cosa in:

graphics.setColor(getColorePerAltezza(dt.height));
graphics.fillRect(dt.x, dt.y, dt.widht, dt.height);
graphics.setColor(Color.BLACK);
graphics.drawRect(dt.x, dt.y, dt.width, dt.height);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 13:37   #3
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
si immaginavo anch io qualcosa di simile; grazie dello spunto, ora provo...certo che ne sai una piu del diavolo tu eh?
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 19:07   #4
Andrea16v
Senior Member
 
L'Avatar di Andrea16v
 
Iscritto dal: Mar 2003
Messaggi: 3852
Hai mica uno screen dell'output generato da questo codice su un alberello di prova?
__________________
Cerco fotocamera con buono zoom!! CLICCA!
° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) °
Andrea16v è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 20:05   #5
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Narwal Flow 2: la pulizia di casa con un mocio a nastro Narwal Flow 2: la pulizia di casa con un mocio a...
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Il rover NASA Curiosity ha scoperto oltr...
Il satellite AST SpaceMobile BlueBird 7 ...
SpaceX: la droneship Just Read the Instr...
Project Helix sarà prodotta anche...
La NASA pubblica alcuni aggiornamenti su...
Tute spaziali AxEMU per Artemis: Axiom S...
Nutanix Government Cloud Clusters arriva...
Troy Baker lavora a un progetto tutto su...
Motorola Edge 60 Neo è il compatt...
Stretto di Hormuz, finti funzionari iran...
Dragon Ball Xenoverse 3 annunciato uffic...
WINDTRE BUSINESS potenzia i servizi IoT ...
OPPO rinnova l'ecosistema: arrivano Watc...
OPPO Find X9 Ultra ufficiale: debutta il...
Renault Twingo: esposta a Milano per far...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v