Autor Zpráva
Marti_n
Profil
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
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
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
Marti_n:
Potřebuješ ukládat postup nebo jen výsledný obrázek?
Marti_n
Profil
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
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
juriad:
Díky za radu, pozriem na to.
1Pupik1989
Profil
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: