Autore Topic: Ruotare Immagine Touch  (Letto 3122 volte)

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Ruotare Immagine Touch
« il: 13 Aprile 2011, 11:42:05 CEST »
0
ciao ragazzi,sono alle prime armi ma
ho bisogno di realizzare un'applicazione che mi permette di ruotare un'immagine di 360 gradi.Il tutto deve avvenire tramite touch.Ho cominciato a vedere il file TouchRotateActivity.java di google.Cosa mi consigliate di fare?grazie
questo è il link!
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchRotateActivity.html

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ruotare Immagine Touch
« Risposta #1 il: 13 Aprile 2011, 11:54:04 CEST »
0
La descrizione si adatta a diversi livelli di implementazione, che potrebbe spaziare da una semplice RotateAnimation di una ImageView iniziata a partire da un evento touch, sino al drag-(senza-drop) con rendering su canvas.

Per la versione più semplice di quelle che ho descritto, molto tempo fa avevo fatto una piccola applicazione dimostrativa, il sorgente lo trovi qua:
 askwheel -
 
 
 Ask the Wheel, a didactic Android inutility - Google Project Hosting
 


Quale funzionalità ti serve effettivamente?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #2 il: 13 Aprile 2011, 13:12:58 CEST »
0
ciao,intanto grazie per il tuo tempo,

in pratica ho un'immagine panoramica e devo potermi muovere in tutte le direzioni.Come se fossi al centro e tutto può girare tramite touch intorno a me.Esiste un'applicazione simile che si chiama HelloPanorama e che sfrutta la libreria PanoramaGL ma non sò bene da dove cominciare.

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #3 il: 15 Aprile 2011, 00:18:38 CEST »
0
Ragazzi nessuno mi può dare una mano?sono disposto anke a dare un compenso

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Ruotare Immagine Touch
« Risposta #4 il: 15 Aprile 2011, 06:55:45 CEST »
0
Non si tratta di soldi.
Se qualcuno sa come aiutarti lo fa e basta.
Se non ti ha risposto nessuno devi pazientate.
Sapresti speiegarmi meglio come vuoi implementare la tua App? Cioè: parti da un'idea?
Personalmente credo che tu possa mappare la tua immagine su una sfera (visto che già hai una foto panoramica), posizionarti al centro e, tramite touch listener verificare i vettori di spostamento degli eventi touche in modo da ruotare la sfera nel suo centro in maniera proporzionale a questi.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ruotare Immagine Touch
« Risposta #5 il: 15 Aprile 2011, 08:04:50 CEST »
0
Ora ho capito...  :D  ...ero andato completamente fuori strada.

Come dice 7h38ugg3r, se hai le cosìddette foto-360° (cioè quelle composte a partire da due scatti con obiettivo fisheye da 180°) allora ti serve mappare la foto su una sfera.

Se tu invece hai una foto panoramica, composta a partire da molti scatti fatti ruotando ogni volta di un po', se più nella condizione di GoogleStreetView ed è più semplice, puoi semplificare mappando la foto su un cilindro di cui tu sei il centro. O ancora più semplice, disegni la foto e con il touch fai scrolling in orizzontale della foto.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #6 il: 15 Aprile 2011, 10:55:36 CEST »
0
Ho a disposizione sia le sei foto sia la foto panoramica.Ieri notte pensavo proprio a google street view.Ho anche cercato qualcosa.E' lo stesso funzionamento relativa solo a quall'immagine.Esistono tutorial ?è cosi semplice come dici tu? :-\
Grazie!!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ruotare Immagine Touch
« Risposta #7 il: 15 Aprile 2011, 11:31:23 CEST »
0
Ho a disposizione sia le sei foto sia la foto panoramica.Ieri notte pensavo proprio a google street view.Ho anche cercato qualcosa.E' lo stesso funzionamento relativa solo a quall'immagine.Esistono tutorial ?è cosi semplice come dici tu? :-\

La semplicità dipende dal livello di approssimazione che accetti.

Se non hai particolari esigenze, prova tu stesso a mettere la foto panoramica nel browser, poi restringi in orizzontale la finestra del browser e provi a scrollare l'immagine in orizzontale per vedere che effetto farebbe. Quello che manca in questa semplificazione è che a livello ottico non viene riprodotto l'effetto che fa una vista a 360°. Un modo per avvicinarsi parecchio all'effetto 360° di cui parli è proiettare l'immagine panoramica su un cilindro (pensa proprio ad un enorme poster panoramico, lo sagomi a cilindro e ti ci metti nel mezzo).

La prima implementazione (scrolling orizzontale dell'immagine) è banale da fare. La seconda (proiezione su cilindro) un po' meno.

Ora su due piedi non saprei dove indirizzarti, ma se ti interessa possiamo cercare (o sentiamo thebugger che sicuramente è più ferrato in materia).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #8 il: 15 Aprile 2011, 11:40:05 CEST »
0
è la seconda implementazione che mi interessa realmente,stavo leggendo questo tutorial sul cilindro

http://blog.jayway.com/2010/02/15/opengl-es-tutorial-for-android-%E2%80%93-part-v/

Il problema poi sarebbe mappare l'immagine e buttarmi al centro di essa.Se mi aiutate ve ne sarei molto grato!!!

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Ruotare Immagine Touch
« Risposta #9 il: 15 Aprile 2011, 13:02:42 CEST »
0
Intanto dai un'occhiata qui.

Dovresti essere in grado di mappare l'immagine su una sfera con un qualsiasi programma di modellazione 3d.
Esporti la mesh con le mappature.
Le cose che mi vengono in mente che si devono fare/conoscere sono queste:
1. devi riuscire a leggere il file che hai esportato (se esporti in .obj trovi tanto in giro)
2. devi riuscire a renderizzare il modello (idem con patate)
3. se mentre modelli la sfera usi l'accorgimento di centrarla a 0,0,0, qualunque visualizzatore ti pone al centro.
4. altro accorgimento: il mapping deve essere all'interno e non all'esterno, oppure accertati di non fare il faceculling durante il rendering, così da non nascondere le facce che hanno una normale concorde alla tua
5. fastto questo, devi solo ruotare senza spostarti

Purtroppo quello che ti dico prevede delle basi di matematica, conoscenze di 3d e pratica con opengl.
Non so come sei messo, ma ti dico che alla fine non è un problema strettamente legato ad android, ma alla teoria che ta dietro la visualizzazione di una foto a 360°.

saluti.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #10 il: 15 Aprile 2011, 13:25:30 CEST »
0
Grazie!Vedo di mettermi al lavoro!E' una cosa troppo importante e urgente(proprio per questo avevo parlato di compenso).

Cmq per la modellaziome 3d va bene adobe ilustrator?o me ne consigli qualcuno più semplice o migliore?

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #11 il: 15 Aprile 2011, 13:32:36 CEST »
0
ho anche a diposizione un file quick time che mi permette di visualizzare l'effetto panoramico della foto.Mi consigli sempre di partire dall'immagine e di mapparla vero?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Ruotare Immagine Touch
« Risposta #12 il: 15 Aprile 2011, 15:08:14 CEST »
0
scusa, non ti posso postare codice perchè non ho tempo per provarlo, ma se non sbaglio applicare l'immagine non è impossible, c'è un metodo piu semplice:
il cilindro non è altro che un insieme di rettangoli (mi pare che col pc 32rettangoli bastassero per dare l'idea di cilindro), quindi te hai un cilindro che visto dall'alto, è una cosa piu precisa di questo:
Se guardi l'immagine, c'è la vista semplificata del sopra e del front del cilindro.
Ogni rettangolo è grande (in orizzontale se visto dall'iterno) 1/32.
quindi se te quando mappi l'immagine, usi come punti i 32esimi dell'immagine ce la fai!
per esempio:
rettangolo uno, i vertici da mappare l'immagine sono: (0,0)(0,height)(1/32width,height)(1/32width,0)
rettangolo due: (1/32width,0)(1/32width,height)(2/32width,height)(2/32width,0)
e cosi via...

per quel poco che so di opengl questa è una versione non ottimizzata ma semplice da fare...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Paoloc

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win7,ubuntu
Re:Ruotare Immagine Touch
« Risposta #13 il: 19 Aprile 2011, 11:39:52 CEST »
0
Intanto dai un'occhiata qui.

Dovresti essere in grado di mappare l'immagine su una sfera con un qualsiasi programma di modellazione 3d.
Esporti la mesh con le mappature.
Le cose che mi vengono in mente che si devono fare/conoscere sono queste:
1. devi riuscire a leggere il file che hai esportato (se esporti in .obj trovi tanto in giro)
2. devi riuscire a renderizzare il modello (idem con patate)
3. se mentre modelli la sfera usi l'accorgimento di centrarla a 0,0,0, qualunque visualizzatore ti pone al centro.
4. altro accorgimento: il mapping deve essere all'interno e non all'esterno, oppure accertati di non fare il faceculling durante il rendering, così da non nascondere le facce che hanno una normale concorde alla tua
5. fastto questo, devi solo ruotare senza spostarti

Purtroppo quello che ti dico prevede delle basi di matematica, conoscenze di 3d e pratica con opengl.
Non so come sei messo, ma ti dico che alla fine non è un problema strettamente legato ad android, ma alla teoria che ta dietro la visualizzazione di una foto a 360°.

saluti.

ho creato il file obj con photoshop utilizzando la sfera.Ora devo riuscire a leggerlo.Ho trovato questo materiale.cosa ne pensate?http://code.google.com/p/earth-live-wallpaper/source/browse/trunk/%20earth-live-wallpaper/SLWP/src/com/seb/SLWP/Sphere.java

Conoscete di meglio??grazie!

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Ruotare Immagine Touch
« Risposta #14 il: 19 Aprile 2011, 12:35:17 CEST »
0
il file è di tipo obj, il codice lo legge, quindi....
credo di si!!!!

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/