Autor | Zpráva | ||
---|---|---|---|
Marti_n Profil |
#1 · Zasláno: 29. 1. 2015, 19:03:06
Ahojte,
Mám canvas v tvare kocky s rozmerom 450px. Do tohto canvasu sa kreslí s 10px hrubou čiarou. Potreboval by som presne zaznamenať užívateľovi jeho postup kreslenia do databázy, napadlo ma uložiť súradnice každého bodu, ale pri veľkom obrázku je tých dát strašne veľa. Napadá vás niekoho ako tieto dáta zmenšiť? Ďakujem. |
||
lorin Profil |
#2 · Zasláno: 29. 1. 2015, 19:50:35
Pokud kreslí pouze čáry, stačí uložit šířku, startovní a konečný bod.
Podobné zjednodušení můžeš udělat i u jiných tvarů. |
||
Marti_n Profil |
#3 · Zasláno: 29. 1. 2015, 19:53:06
prepáč, zle som to nazval, je to voľné kreslenie ako ceruzka v skicári.
|
||
weroro Profil |
lorin:
Ja si myslím, že to stou čiarou nemyslel doslovne. Čo ak sa niekto bude snažiť nakresliť kruh alebo kopec? Marti_n: Neviem aké rozšírené možnosti má javascript ale je možné to celé ukladať v json formáte a samotný json výstup, ktorý by si inak uložil do DB by som ešte asi prebehol LZW kompresiou (alebo niečim lepším, čo je v JS dostupné). edit: Predpokladám, že chceš dosiahnuť niečo na tento spôsob http://fcmx.net/vec/v.php?i=201232 (vyžaduje flash) |
||
Jan Tvrdík Profil |
#5 · Zasláno: 29. 1. 2015, 19:57:16
Marti_n:
Potřebuješ ukládat postup nebo jen výsledný obrázek? |
||
Marti_n Profil |
#6 · Zasláno: 29. 1. 2015, 20:00:28
Jan Tvrdík:
Celý postup presne, najlepšie aj aby to bolo časovo presne, aby bolo vidno či užívatel kreslil pomaly či rýchlo. Lámem si už nad tým hlavu 2 dni, ono sa to dá to je jasné, ale ten balík dát je strašne veľký. |
||
juriad Profil |
#7 · Zasláno: 29. 1. 2015, 20:05:57
Předpokládám, že kresba je atomická, na úrovni SQL nikdy nebude potřeba selektovat část kresby.
Asi bych snímal posun kurzoru myši a počítal rozdíl proti předchozí poloze a ten rozdíl zvlášť v x a y kódovat Huffmanovým kódováním. Ještě je možnost využít dynamiky a počítat druhou diferenci (tedy jak se liší rozdíly mezi jednotlivými posuny). Pokud potřebuješ i čas, tak by šlo uvažovat třetí řadu s časovými rozdíly také kódovanou stejným způsobem. Tabulky pro Huffmanův kód budeš muset buď předpočítat pro pohyb a čas zvlášť nebo implementovat nějakou adaptivní metodu. |
||
Marti_n Profil |
#8 · Zasláno: 29. 1. 2015, 20:14:49
juriad:
Díky za radu, pozriem na to. |
||
1Pupik1989 Profil |
#9 · Zasláno: 29. 1. 2015, 23:26:29
Kdyby si k tomu uložil na FTP i výstup z canvasu, tak teoreticky by si mohl ušetřit data, kdyby si to pojal jako cesty.
Příklad: ![]() Předpokládám, že body budou vždy spolu sousedit v rámci jedné cesty. Pak by si mohl ukládat jen úhly. Následně to prohnat adaptivním huffmanovým kódováním. Doporučuji mrknout na Deflate (RFC-1951). Tím by se teoreticky data mohla smrskout ještě více, než v připadě souřadnic. |
||
Časová prodleva: 10 let
|
0