ugrás a tartalomhoz

Geometriai program natívan webre (javascript - canvas - svg)

Ustak · 2009. Szep. 24. (Cs), 22.04
Sziasztok!

Ha minden igaz, egy olyan feladatba kell belevágnom, melynek lényege, hogy egy java -ban megírt geometriai oktatóprogramot kellene átraknom javascript alapúra, tehát hogy a böngészőkben mindenféle plugin nélkül működjön, és ráadásul hogy nagyot mondjunk, jó lenne ha mobil eszközökön is elindulna :-)

Egyelőre az információgyűjtés szintjén tartok (és gondolom ott is maradok még egy ideig:-)) Nagy vonalakban arra gondoltam, hogy amit lehet, valid xhtml kóddal megoldok, és a rajzolás részét pedig a canvas - svg megoldással, böngészőtől függően. Mivel az utóbbi dolgokban nem vagyok még benne, az a kérdésem, merre nézelődjek, van e tapasztalat.

Mindenképpen egy js frameworkot ki fogok választani, a legutóbbi <jsmag> -ban van is egy összehasonlítás a különféle chart megoldásokról. Olyat is hallottam, hogy létezik olyan compiler, mely java kódból javascriptet fordít (a gxt -vel dolgozom is, az tudom hogy ilyen) de kicsit egyelőre fenntartásaim vannak a dologgal kapcsolatban, a két nyelv elég különböző, a javascript enged olyan trükköket, melyeket nem tudom hogy a fordító belerak -e és úgy rakja -e bele ahogy azt én tenném. Szóval a kézzel írt kód mellet szavaznék egyelőre (még fél évi gxt fejlesztés után is).

Tehát a lényeg: canvas - svg framework tapasztalat.
Köszi:
Gábor.
 
1

IE?

Poetro · 2009. Szep. 25. (P), 02.06
Mivel az IE egyiket se támogatja a kettőből, azért kicsit gondolkodj tovább. IE esetén létezik a VML ami teljesen máshogy működik mint a canvas. Én jQuery Sparkline-nal dolgoztam / dolgozok, de létezik IEhez Canvas emuláció (a jQuery Sparkline is VML-lel emulálja a canvast több / kevesebb sikerrel).

szerk: csak a pontosság kedvéért, nem a legutóbbi <jsmag>-ban volt grafikonokról szó, hanem a júliusi számban.
2

flot

krisy · 2009. Szep. 25. (P), 13.39
Sziasztok!

A sparkline nem csak kis méretű grafikonokhoz íródott?

Én anno ezt használtam:
http://code.google.com/p/flot/
Csak egyszerű függvényeket kellett használnom benne, de arra tökéletes volt.
(ez is az ExplorerCanvas-t használja, szerintem ha valami bonyolultabb kódról lenne szó, akkor erre "építve" lehet(?) elérni, hogy egy kód fusson a böngészők alatt)

GXT-t még nem használtam, de ha jól látom, akkor GWT-re épülő EXT JS-es cucc. Ext-tel is csak remek tapasztalataim vannak (cáfoljatok meg :-) ), én tuti erre alapoznám az egészet!

(azért vigyázz, mert ha jól emlékszem, a legújabb változatok már fizetősek!)
3

Állatság-e egy "pixelmátrix"?

Szalay · 2009. Szep. 28. (H), 21.12
Csinálj egy "pixelmátrixot", pl. x*y nagyságú táblázatot 1px*1px-es cellákkal, vagy szakaszokkal ugyanilyet. Aztán ezen azt a pixelt kapcsolod be, amelyiket akarod, és olyan színűre amilyenre akarod.

Kell egy függvény szerintem, amivel tömböt tudsz rá kitenni, aztán csinálsz pár magasabb szintűt, ami vonalat csinál tömbbe, aztán ami négyzetet vagy akármilyen sokszöget a vonalakból. Ha ilyen alapdolgok megvannak, akkor lehet agyalni az élsimításon egészpixelekkel, aztán szubpixelekkel, meg meg lehet oldani, hogy az egérrel erre a "pixelmátrixra" rajzolni is lehessen...

Nekem ez ugrott be elsőre, persze nyilván vannak ennek komoly hátrányai, erős gép meg videokártya, plusz sok ram kellhet stb...

=====

Az SVG-t tudomásom szerint az Opera támogatja egyedül beépülő nélkül.
5

svg támogatottság

Drawain · 2009. Szep. 28. (H), 23.34
Azért az svg-t jóval több böngésző támogatja natívan.
4

köszönöm

Ustak · 2009. Szep. 28. (H), 22.25
szépen a hozzászólásokat! Több dolgot megnéztem a canvassal kapcsolatban, és szerintem annál fogok maradni, ie ide vagy oda:-). A terveim egyelőre:

A java javascriptre fordítása (erre vannak eszközök, nem akarom kézzel átírni az összes osztályt, mert rengeteg - ez egyelőre a legnehezebb része a dolognak. A gui részt persze nem kell, de az alakzatokat számító algoritmusok osztályait igen).

A javascript és a canvas megjelenítő kódja közt egy olyan interface -t kreálni, ami lehetővé teszi, hogy ha a java kód változik, és azt újrafordítom, akkor a változásokhoz a canvas kódját ne kelljen változtatni. A swinget sajnos nem ismerem még igazán (az eredeti alkalmazás abban íródott) de nyilván ott is valamilyen 'canvas'-ra rajzol, ezt még át kell néznem.

Köszönöm a hozzászólásokat!
Gábor.
6

Research

Ustak · 2009. Okt. 5. (H), 15.06
Sziasztok! Gondoltam leírom a gondolataimat, hogy eddig mire jutottam. Szeretném ha tapasztaltabb emberek leírnák a véleményüket, hogy jól látom -e a dolgokat.

Tehát mint mondottam egy geometriai oktatóprogram java -ról teljesen webes (javascript+(x)html) alapra való átírásáról lenne szó. A szóban forgó oktatóprogram a geogebra, gondolom nem ismeretlen többünk előtt :-) (geogebra.) Igazából most az információszerzés folyamatában vagyok.

A projekt többi részvevője (akik a webprogramozáshoz és a javascripthez igazán nem nagyon értenek) szeretnék, ha ezt a dolgot sikerülne úgy megoldani, hogy a java-t lefordítjuk javascriptre. (Igazából értem az Ő álláspontjukat, a kód rengeteg.) Két általuk javasolt projektet is megnéztem ezzel kapcsolatban, az egyik az xmlvm.org, mely a fordítást végzi, és fordított javascript szintaktikájában a qooxdoo.org keretrendszer elvárásait követi. A fordítást sikerült elkészítenem, de a keretrendszerbe bekötni már nem sikerült (ezt egy pyton script végzi - egyébként a demo alkalmazást sem sikerült futtatnom, mely az xmlvn oldalon van), de nem is nagyon áltattam magam, látván hogy a fordított js -ek összesen 58M(!!!!) amit nyilván ha valahogy tömörítünk, nem hiszem hogy hirtelen 1M alá kerül :-). A js kód nagy része egyébként a java-ban használt absztrakciós szintek emulálására szolgál. Találtam még egy xml11org nevű hasonszőrű fordítót, de futásra azt sem sikerült bírni. A gwt -t ismerem, de kérdés, hogy megbírkózna -e kész java kóddal... Szóval első kérdésem az, hogy a fentiekkel van -e tapasztalata valakinek.

Az én véleményem, hogy akármennyire is kolosszális mennyiségű a kód, valamilyen szinten fel kell vállalnunk, hogy kézzel szedjük össze. A geogebra mvc rendszerben van írva, a kernel részt esetleg le lehetne fordítani, és egy megfelelő interface-t keresve létrehozni fölé a controllert és a view-et. Még azt is el tudom képzelni, hogy a kód ajax-al vagy script injectionnel jönne a szerverről, így nem egyszerre nyomnánk bele az oldalba az összes js-t. Vagy a html5 -ös canvast használva (bár akkor az apit nekünk kell megírni, és kizárjuk IE-t) vagy a nagyon ígéretes jsxgraph használatával megoldani a megjelenítést. Én úgy érzem, hogy egy ekkora alkalmazásnál, melyet rengetegen használnak, kínos lenne egy olyan webalkalmazást összedobni, mely az eredeti árnyékában él, és sebességében, használhatóságában lemarad mögötte. Tehát az én nézőpontom hogy egyelőre meghatározni egy pár alap funkciót, melyet legtöbbet használnak (van olyan tag a csapatban aki ezt fel tudja mérni) és abból egy működő, használható tuti kis alkalmazást létrehozni, mely ahogy az eredi is, a közösség használatával fejlődne tovább.

Jó lenne, ha leírnátok a véleményeteket erről, itt biztos sokaknak nagyobb tapasztalatuk van az opensource dolgok fejlesztésében mint nekem.
Köszi:
Gábor.