Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    [?] Rappresentazione di poligoni 2D

    Devo sviluppare un algoritmo che deve generare un grafo in un ambiente in cui sono presenti degli oggetti che possono essere approssimati a dei poligoni.

    Ho la necessità di manipolare i poligoni stessi (calcolo di aree, centro di massa, intersezioni con delle rette, etc) per dei calcoli geometrici e sto cercando di documentarmi per capire quali sono le rappresentazioni piu convenienti/utilizzate per tenere in memoria questi poligoni.

    Ad esempio, la soluzione più banale che mi viene in mente è una rappresentazione matriciale dell'ambiente, in cui ogni cella rappresenta un punto, e la cella stessa contiene un valore che identifica se quel punto appartiene ad un poligono piuttosto che ad un altro.

    Sapete indicarmi dove documentarmi, o suggerirmi delle chiavi per effettuare una ricerca mirata in tal senso?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    io terrei un array con i vertici dei poligoni.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Puoi usare una struttura di questo tipo...
    non badare alle parentesi
    codice:
    struct Vertice
    [
       struct
        [ float x,y,z; ] Posizione;
       
       struct
        [ float x,y,z; ] Normale;
    
       int Primitiva;
    ];
    Le prime 2 strutture si capiscono da sole.
    L'int indica la primitiva (triangolo, quadrato, trapezio che sia) di appartenenza (numero 1, 2 ,3..)
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Grazie dei suggerimenti.
    Per quanto riguarda il primo confesso che mi era gia venuta in mente una cosa del genere, il secondo è interessante ma non posso assegnare alcuna primitiva al poligono perche di sicuro non è un poligono notevole (quadrato, rettangolo etc)

    Comunque, in un modo o in un altro, credo che ce la farei ad uscirne in qualche maniera, creando strutture ad hoc. Quello che mi preme sapere, e che forse non ho spiegato bene nel mio post, è se esistono approcci consolidati e di 'comune' utilizzo per affrontare problemi di questo tipo, tenendo in considerazione il fatto che l'algoritmo finale dovrà rispettare determinati vincoli in termini di tempo di elaborazione ed occupazione di memoria.

    Come gia detto, una semplice keyword per fare delle ricerche mi sarebbe gia di grande aiuto.

    Grazie comunque!

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Mmm forse anche io non mi sono spiegato.
    O non ho capito proprio niente.

    Nella struttura, l'intero rappresenta il numero di primitiva.
    Mettiamo caso vuoi costruire un quadrato e un triangolo...farai
    codice:
    Vertice v1;
    v1.bla //assegni i 4 vertici
    v1.Primitiva = 1;
    
    //stessa cosa per v2,v3 e v4
    
    Vertice v5
    v5.bla //assegni altri 4 vertici
    v5.Primiiva = 2;
    
    //1 sarebbe uguale al quadrato.
    //2 invece al trapezio
    non so se è chiaro
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se non avrai a che fare con curve complesse (polinomi di grado elevato o altre amenità), ossia se avrai a che fare solo con poligoni formati da spezzate, i vertici ti bastano e ti avanzano.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Originariamente inviato da Andrea1979
    Se non avrai a che fare con curve complesse (polinomi di grado elevato o altre amenità), ossia se avrai a che fare solo con poligoni formati da spezzate, i vertici ti bastano e ti avanzano.
    Beh allora sembra proprio che non ci siano in giro cose che non mi fossero gia venute in mente

    Grazie dell'interessamento

  8. #8
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Non so se ho capito bene il tuo problema... ma in caso di curve potresti salvare l'equazione della curva....

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.