5 messaggi dal 06 settembre 2002
Avrei necessità di creare una pagina web dove un utente possa fare uno schizzo a mano libera. Tale schizzo andrebbe poi salvato e archiviato nel server.

E' possibile creare qualcosa in .net? O con qualche componenete? Come risolvereste voi il problema?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
usa macromedia flash, ma ti richiederà una certa dose di esperienza.
io lo sto facendo così, guarda qui:
http://www.doppioslash.it/magna.swf
è una mooolto bozza, infatti non salva e la grafica fa pena. E' solo uno studio per provare il funzionamento della cosa e sembra che possa essere fattibile.
Modificato da BrightSoul il 20 settembre 2004 10.54 -

Enjoy learning and just keep making
5 messaggi dal 06 settembre 2002
Il difficile è capire come fare a salvare questo disegno sul server, magari in formato JPG!

Qualche suggerimento?
11.886 messaggi dal 09 febbraio 2002
Contributi
no, salvalo come stringa, ti da poi la libertà di ricreare il disegno così come era stato fatto. Avevo pensato di creare ANCHE una gif o jpg come thumbnail del disegno, per poi creare una galleria.

Quello funziona così:
ogni tot millisecondi vado a leggere la posizione del mouse e, se è cambiata, traccio la riga dal punto precedente.
Se fai il controllo ogni pochi millisecondi hai una buona approssimazione delle curve, ma il disegno peserà di più.
Al contrario, se metti pochi controlli hai un disegno leggero ma approssimato non bene.

per "leggero" o "pesante" intendo il numero di dati generati durante il disegno.
Quello che dovresti fare è memorizzare in una stringa le coordinate di tutte le posizioni del mouse che hai rilevato.
Esempio:

15,35

il mouse si trovava a 15 pixel dal margine sinistro dello stage e a 35 da quello superiore.
Alla prossima rilevazione, il mouse potrebbe trovarsi in:

12, 40

e così via.
separa tutte queste rilevazioni con un carattere, tipo:

12,35;12,40;16,40

salva questa stringa nel database.
Quando la vai a recuperare saprai anche con che ordine i punti sono stati tracciati.
Puoi usare questa stringa anche per generare delle immagini con Asp.net.
Nulla ti vieta infatti di usare i vari metodi di disegno messi a disposizione dal GDI+ per ricreare quanto fatto dall'utente.

A questo punto cominciano le ottimizzazioni.
Salvare su disco una stringa come quella può essere una mazzata tra capo e collo, specie se il disegno è complesso.
6 byte (che crescono quando entrano coordinate a 3 o 4 cifre) per determinare una sola posizione sono decisamente troppi. Bisogna ridurre l'ingombro.
Premettendo che flash non riesce a caricare dati binari (a meno che non hai anche Communication server), devi arrangiarti con altre notazioni.
Io personalmente uso un sistema a base 64, molto stupido ma efficace. Se in base 10 puoi contare su questi simboli: 0123456789 e in base 16 puoi usare 0123456789ABCDEF, nulla mi vieta di allargare l'insieme e creare una stringa del tipo:
01234567890abcdefghijklmnopqrstuvwxyzABCDEF... ecc fino ad arrivare a 64 caratteri.

dedico ad ogni coordinata 2 byte. In questo caso ho 64^2 combinazioni = 4096 che sono abbastanza (posso avere una lavagna di 4096 pixel di lato).
ogni posizione del mouse mi occupa 4 byte.
Quando vado a rileggere la stringa la spezzetto in gruppi di 4 caratteri. i primi 2 mi indicano la x, i secondi 2 la y.
ciao

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.