Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    gengiva
    Utente privileggiato
    il 2012-05-23 21:32:48.0 alle 2012-05-23 21:32:48.0
    Trollate totali: 9100
    cervelloni risolvetemi questo problema
    noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2

    questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere

    ma se dovessimo determinare il comportamento di una sfera su di un terreno?
    il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)

    come vi comportereste?

    **Modificato dall'autore il 23.05.2012 21:35**
    Cercatelo con Google, ritardato! ©
    • Avatar
      ☺
      Scritto da
      avvelenato
      un mezzo cavallo
      il 2012-05-23 21:53:43.0 alle 2012-05-23 21:53:43.0
      Trollate totali: 14239
      Re: cervelloni risolvetemi questo proble
      Scritto da: gengiva
      > noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
      >
      > questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere
      >
      > ma se dovessimo determinare il comportamento di una sfera su di un terreno?
      > il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)
      >
      > come vi comportereste?
      >
      > **Modificato dall'autore il 23.05.2012 21:35**

      non ho capito la parte delle colline. Le colline sono rappresentate dai quadrilateri sul terreno?
      Ma domanda, se la sfera è una sfera (quindi 3d) perché i quadrilateri, che sono 2d?

      poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
      I pedoni possono muoversi solo in avanti.
      • Avatar
        ☺
        Scritto da
        gengiva
        Utente privileggiato
        il 2012-05-23 22:08:20.0 alle 2012-05-23 22:08:20.0
        Trollate totali: 9100
        Re: cervelloni risolvetemi questo proble
        Scritto da: avvelenato
        > Scritto da: gengiva
        > > noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
        > >
        > > questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere
        > >
        > > ma se dovessimo determinare il comportamento di una sfera su di un terreno?
        > > il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)
        > >
        > > come vi comportereste?
        > >
        > > **Modificato dall'autore il 23.05.2012 21:35**
        >
        > non ho capito la parte delle colline. Le colline sono rappresentate dai quadrilateri sul terreno?
        > Ma domanda, se la sfera è una sfera (quindi 3d) perché i quadrilateri, che sono 2d?

        il terreno senza texture è così
        Immagine postata dall'utente

        i quadrilateri formano il terreno e hanno 3 coordinate per vertice (x,y,z)

        > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?

        entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.

        l'obiettivo principale è quello di muovere la sfera in modo che segua l'andamento della terra e non ci passi attraverso, il classico collision detection di cui però non riesco a trovare esempi specifici o algoritmi generalizzati

        **Modificato dall'autore il 23.05.2012 22:10**
        Cercatelo con Google, ritardato! ©
        • Avatar
          ☺
          Scritto da
          il 2012-05-23 22:22:52.0 alle 2012-05-23 22:22:52.0
          Trollate totali: 42885
          Re: cervelloni risolvetemi questo proble
          Scritto da: gengiva

          > > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
          >
          > entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.

          Praticamente vuoi trovare dove una retta parallela all'asse delle z e passante per il centro della sfera interseca un piano determinato dai 3 dei 4 vertici del quadrilatero (Approssimazione ! Non e' detto che il punto di contatto sia esattamente "sotto" la sfera - Piu' il quadrilatero non e' parallelo al terreno, piu' l'approssimazione va a ramengo)

          Perche' non usi triangoli al posto di quadrilateri Newbie, inesperto ?

          `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
          • Avatar
            ☺
            Scritto da
            gengiva
            Utente privileggiato
            il 2012-05-23 22:30:49.0 alle 2012-05-23 22:30:49.0
            Trollate totali: 9100
            Re: cervelloni risolvetemi questo proble
            Scritto da: Giambo
            > Scritto da: gengiva
            >
            > > > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
            > >
            > > entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.
            >
            > Praticamente vuoi trovare dove una retta parallela all'asse delle z e passante per il centro della sfera interseca un piano determinato dai 3 dei 4 vertici del quadrilatero (Approssimazione ! Non e' detto che il punto di contatto sia esattamente "sotto" la sfera - Piu' il quadrilatero non e' parallelo al terreno, piu' l'approssimazione va a ramengo)

            più o meno, in teoria (credo), bisognerebbe considerare tutti e 3 gli assi, perchè l'ostacolo può essere in qualsiasi direzione, o no? esempio: saltando potrei incontrare un soffitto in direzione y oppure con uno spostamento laterale potrei trovare un muro

            > Perche' non usi triangoli al posto di quadrilateri Newbie, inesperto ?
            >

            bella domanda, ci ho pensato e ho visto che ci sono diverse scuole di pensiero
            io mi trovo meglio con i quadrilateri, perché unisco le linee con due cicli for innestati come se fosse una matrice e boh, mi è venuto naturale così
            Cercatelo con Google, ritardato! ©
        • Avatar
          ☺
          Scritto da
          avvelenato
          un mezzo cavallo
          il 2012-05-24 11:00:02.0 alle 2012-05-24 11:00:02.0
          Trollate totali: 14239
          Re: cervelloni risolvetemi questo proble
          Scritto da: gengiva
          > Scritto da: avvelenato
          > > Scritto da: gengiva
          > > > noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
          > > >
          > > > questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere
          > > >
          > > > ma se dovessimo determinare il comportamento di una sfera su di un terreno?
          > > > il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)
          > > >
          > > > come vi comportereste?
          > > >
          > > > **Modificato dall'autore il 23.05.2012 21:35**
          > >
          > > non ho capito la parte delle colline. Le colline sono rappresentate dai quadrilateri sul terreno?
          > > Ma domanda, se la sfera è una sfera (quindi 3d) perché i quadrilateri, che sono 2d?
          >
          > il terreno senza texture è così
          > Immagine postata dall'utente
          >
          > i quadrilateri formano il terreno e hanno 3 coordinate per vertice (x,y,z)
          >
          > > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
          >
          > entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.
          >
          > l'obiettivo principale è quello di muovere la sfera in modo che segua l'andamento della terra e non ci passi attraverso, il classico collision detection di cui però non riesco a trovare esempi specifici o algoritmi generalizzati
          >
          > **Modificato dall'autore il 23.05.2012 22:10**

          per la gravità imho dovresti calcolare una mappa col gradiente delle altezze, così a seconda delle coordinate hai il vettore corrispondente all'inclinazione.

          per la collisione imho devi considerare un array di coordinate corrispondente ai vertici che si trovano nell'area della sfera.

          Quindi se la sfera è (x1-x)2+(y1-y)2+(z1-z)2=r2, si trova in x1,y1,z1: tu devi trovare tutti i vertici dei rettangoli del terreno (xt(i),yt(i),zt(i) ) tali che (x1-xt(i))2+(z1-zt(i))2<=r2

          da lì poi capire su quale vertice collide... ci sto ancora pensando. bel quesito btw. Mi fai ritornare al periodo in cui ero giovane e pieno di entusiasmo In lacrime
          I pedoni possono muoversi solo in avanti.
          • Avatar
            Scritto da
            Non Autenticato
            il 2012-05-24 12:19:20.0 alle 2012-05-24 12:19:20.0
            Re: cervelloni risolvetemi questo proble
            > > > > noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
            > > > >
            > > > > questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere
            > > > >
            > > > > ma se dovessimo determinare il comportamento di una sfera su di un terreno?
            > > > > il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)
            > > > >
            > > > > come vi comportereste?
            > > > >
            > > > > **Modificato dall'autore il 23.05.2012 21:35**
            > > >
            > > > non ho capito la parte delle colline. Le colline sono rappresentate dai quadrilateri sul terreno?
            > > > Ma domanda, se la sfera è una sfera (quindi 3d) perché i quadrilateri, che sono 2d?
            > >
            > > il terreno senza texture è così
            > > Immagine postata dall'utente
            > >
            > > i quadrilateri formano il terreno e hanno 3 coordinate per vertice (x,y,z)
            > >
            > > > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
            > >
            > > entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.
            > >
            > > l'obiettivo principale è quello di muovere la sfera in modo che segua l'andamento della terra e non ci passi attraverso, il classico collision detection di cui però non riesco a trovare esempi specifici o algoritmi generalizzati
            > >
            > > **Modificato dall'autore il 23.05.2012 22:10**
            >
            > per la gravità imho dovresti calcolare una mappa col gradiente delle altezze, così a seconda delle coordinate hai il vettore corrispondente all'inclinazione.
            >
            > per la collisione imho devi considerare un array di coordinate corrispondente ai vertici che si trovano nell'area della sfera.
            >
            > Quindi se la sfera è (x1-x)2+(y1-y)2+(z1-z)2=r2, si trova in x1,y1,z1: tu devi trovare tutti i vertici dei rettangoli del terreno (xt(i),yt(i),zt(i) ) tali che (x1-xt(i))2+(z1-zt(i))2<=r2
            >
            > da lì poi capire su quale vertice collide... ci sto ancora pensando. bel quesito btw. Mi fai ritornare al periodo in cui ero giovane e pieno di entusiasmo In lacrime

            Sicuramente è un problema che è stato già affrontato e risolto da qualcuno. alex.tg scommetto che l'ha fatto.
          • Avatar
            ☺
            Scritto da
            gengiva
            Utente privileggiato
            il 2012-05-24 15:02:13.0 alle 2012-05-24 15:02:13.0
            Trollate totali: 9100
            Re: cervelloni risolvetemi questo proble
            Scritto da: avvelenato
            > Scritto da: gengiva
            > > Scritto da: avvelenato
            > > > Scritto da: gengiva
            > > > > noi sappiamo che due sfere A e B di cui conosciamo il centro e il raggio (ax,ay,az,ar) e (bx,by,bz,br) si intersecano se (ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
            > > > >
            > > > > questo va bene se dobbiamo determinare una collisione tra due corpi distinti trattati come se fossero delle sfere
            > > > >
            > > > > ma se dovessimo determinare il comportamento di una sfera su di un terreno?
            > > > > il terreno ha colline di varia altezza ed è composto da quadrilateri di cui conosciamo le coordinate dei vertici nello spazio (è un reticolo per intenderci). la mia idea era quella di determinare l'altezza di ogni punto e muovere la sfera di conseguenza ma mi sbagliavo, perché va a finire che quest'ultima segue i singoli vertici, senza considerare l'inclinazione dei piani e muovendosi a "scatti" (di punto in punto) andrebbe bene se il reticolo avesse una spaziatura di 0.5 , ma con un offset regolabile questo non è accettabile (trama fine 0.5 = il doppio dei poligoni)
            > > > >
            > > > > come vi comportereste?
            > > > >
            > > > > **Modificato dall'autore il 23.05.2012 21:35**
            > > >
            > > > non ho capito la parte delle colline. Le colline sono rappresentate dai quadrilateri sul terreno?
            > > > Ma domanda, se la sfera è una sfera (quindi 3d) perché i quadrilateri, che sono 2d?
            > >
            > > il terreno senza texture è così
            > > Immagine postata dall'utente
            > >
            > > i quadrilateri formano il terreno e hanno 3 coordinate per vertice (x,y,z)
            > >
            > > > poi: vuoi sapere come fare a determinare il contatto tra sfera o terreno o simulare l'effetto della gravità tenendo conto delle pendenze del terreno?
            > >
            > > entrambe le cose, anche se l'effetto della gravità (accelerazione in pendenza ecc) è meno importante per ora.
            > >
            > > l'obiettivo principale è quello di muovere la sfera in modo che segua l'andamento della terra e non ci passi attraverso, il classico collision detection di cui però non riesco a trovare esempi specifici o algoritmi generalizzati
            > >
            > > **Modificato dall'autore il 23.05.2012 22:10**
            >
            > per la gravità imho dovresti calcolare una mappa col gradiente delle altezze, così a seconda delle coordinate hai il vettore corrispondente all'inclinazione.
            >
            > per la collisione imho devi considerare un array di coordinate corrispondente ai vertici che si trovano nell'area della sfera.
            >
            > Quindi se la sfera è (x1-x)2+(y1-y)2+(z1-z)2=r2, si trova in x1,y1,z1: tu devi trovare tutti i vertici dei rettangoli del terreno (xt(i),yt(i),zt(i) ) tali che (x1-xt(i))2+(z1-zt(i))2<=r2
            >
            > da lì poi capire su quale vertice collide... ci sto ancora pensando. bel quesito btw. Mi fai ritornare al periodo in cui ero giovane e pieno di entusiasmo In lacrime

            no era una stronzata, l'ho risolto Sorride
            praticamente è il processo inverso a quello che uso per muovere la camera: ruotando il mouse gli dai l'angolo verticale o orizzontale, di conseguenza per spostarsi in una determinata direzione si fa

            esempio: muoversi avanti

            raggioE è la velocità

            x=raggioE*sin(angoloO)+x;
            z=raggioE*cos(angoloO)+z;
            y=raggioE*sin(angoloV)+y; //facoltativo, serve ad alzarsi

            quindi quello che mi serve è l'angolo V del piano su cui mi devo spostare e si risolve tranquillamente calcolando la distanza e l'altezza del punto successivo rispetto a dove mi trovo in quel momento
            Cercatelo con Google, ritardato! ©
<softv>

Pagina generata in 109 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 27 negli ultimi cinque minuti, 57 negli ultimi 15 minuti