Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [algoritmo] figure sovrapposte

    Definiamo un tipo di record:

    Codice PHP:
    record Figura
        x integer
        y integer
        larghezza integer
        altezza integer
    end record 
    Supponiamo di avere 2 figure A e B, come faccio a sapere se B ricopre anche solo in parte la figura A?

    p.s.: guardate che non è banale: ci si incasina facilmente in mezzo a moltissimi if!

  2. #2
    La definizione del record Figura che hai sviluppato è alquanto ambigua . Dovresti specificare cosa significano i vari campi ; penso che il tuo record andrebbe dettagliato maggiormente . A leggerlo così pare che stiamo nel caso di rettangoli , e in questo caso è banale verificare se un rettangolo ricopre un altro in maniera parziale o totale . Saluti

  3. #3
    si tratta di rettangoli e x e y indicano la posizione del vertice superiore sinistro.

    Se è banale mi fai vedere come si fa?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Insaponata
    si tratta di rettangoli e x e y indicano la posizione del vertice superiore sinistro.

    Se è banale mi fai vedere come si fa?
    "Se la distanza assoluta sull'asse x tra i centri dei due rettangoli è minore della somma delle semilarghezze dei rettangoli e la distanza assoluta sull'asse y tra i centri dei due rettangoli è minore della somma delle semialtezze, allora i rettangoli sono sovrapposti"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Detti x1,y1,l1,h1 e x2,y2,l2,h2 i parametri di due rettangoli r1 e r2 , allora r2 è sovrapposto a r1 se :
    codice:
    x1<=x2<=x1+l1  
    e
    y1<=y2<=y1+h1

  6. #6
    e questo caso è previsto?
    Immagini allegate Immagini allegate

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    scusa ma se leggi bene l'algoritmo proposto da andbin capisci subito che, ovviamente, il caso da te proposto è previsto...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    tradotto:

    codice:
    sx=(abs(x1-x2+(L1-L2)/2)<(L1+L2)/2));
    sy=(abs(y1-y2+(H1-H2)/2)<(H1+H2)/2);
    
    if (sx && sy) ..... rettangoli sovrapposti....
    else ....rettangoli non sovrapposti
    questo è realizzato in C
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  9. #9
    anche in questo caso???
    Immagini allegate Immagini allegate

  10. #10
    cmq devo fare un precisazione: nel caso che sto considerando l'asse delle x si incrementa da sinistra verso destra, mentre l'asse delle y dall'alto verso il basso.


    :master:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.