Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
lovci

Založen: 04. 12. 2009 Příspěvky: 12
|
Zaslal: 4. prosinec 2009, 19:01:25 Předmět: Vyplnování ploch v java Graphics |
|
|
Ahoj, řeším problém s vyplňováním ploch(něco jako nástroj pixla).
Mám v mySQL uložený plán (změť čar a refrenčních bodů). Čáry jsou neorganizovaně uloženy (z leva do prava z prava doleva) a jednotlivé body určují místo které je potřeba nějak vyplnit(většinou 4 úhelníky z prusečíků těch čar).
Takže a problém je v tom, že první řešení bylo zjištění nejbližších přímek a jejich prusečíků z toho jsem dostal 4 body a ty jsem vykreslil jako FillRect. Jenže tato metoda je dost problémová a nějak se mi tu vodící přímku nepovedlo naprogramovat dost inteligentně aby našla vždy ty zprávné prusečíky a tak to u obzvláště křivých tvarů neplnilo požadovaný efekt, nebo byl-li to polygon s více vrcholy.
Moje druhé řešení je, že se pokusím implemetovat algoritmus flood fill
http://en.wikipedia.org/wiki/Flood_fill
, abych docílil efektu vyplnění jako ve starém dobrém grafickém rozhraní v Pascalu(to bylo stávající řešení, které modernizujeme do javy).
popis:
1.připravím si pole int[scaledWidth][scaledHeight] oblast reprezentujíci kreslenou plochu(čáry)- ten scale tam je proto, že ty čáry budou např. 10x zmenšené aby ten flood fill byl co nejrychlejší.
2. vytvořím si Image do kterého vykreslím zmenšené čáry(nevím jak kreslit do Image).
3. podle referenčních bodů si vytípnu oblast kolem(nějaký borderMaxX a y)
provedu grabPixels() do pole oblast, aplikuju flood fill a vytvořím si Shape vyplněné oblasti, které si přidám do nějakeho Vectoru nebo Array shape.
4. dle požadavků vykreslím všechny čáry a Shapes ve zprávném měřítku již v g.drawLine() a g.fillShape().
A problém mám s tím jak toho docílit.
1.Potřebuju to vykreslit do mého Image, něco jako Graphics g.drawLine(x1, y1, x2, y2), ale nevím jak bych mohl takhle kreslit do Image.
2. Potřebuju "vytípnout" danou oblast(dle ref bodu) z tohoto Image( to vím to použiju PixelGraber).
3. aplikuju algoritmus ff a daný shape nebo ByteArray vykreslím.
Takže žádám o radu jak to nejlépe a nejvýkoněji provést, jestli mám normálně kreslit do Graphics a pak to z ní nějak vytáhnu do Image(nebo nějaké array pixelů) na kterém provedu ten PixelGrab nebo jestli nějak jde kreslit do Image rovnou (nechci si psát vlastní funkce, které by "vykreslovay" Lines do mého ByteArray ve kterém bych mohl lehce provést ff).
Neřešil jste někdo něco takového? Za každou radu nebo užitečný link děkuju
Mimo to nestálo by za to použít OGL nebo něco takového? Potřebuju aby to běhalo na kancelářkém pc a nevím jak je na tom java a její Graphics a Graphics 2D s rychlostí a abych byl schopnej toto provádět dejme tomu s 200 Shapes(ikdyž tyto výpočty provedu jednou a pak už jen budu kreslit Lines a Shapes). |
|
Návrat nahoru |
|
 |
lovci

Založen: 04. 12. 2009 Příspěvky: 12
|
Zaslal: 5. prosinec 2009, 18:21:59 Předmět: rychlost |
|
|
Mám ještě jeden dotaz .
Nestálo by za to použít nějake to OGL nebo jine 3D rozhraní pro javu?
Nebylo by vykreslování přes GPU rychlejší a práce s funkcema typu vyplnení ploch hotové?Nebo použití JPanelu jako canvas je dost optimalizované a vytáhne z železa "veškerý" výkon pro zobrazení 2D? Skusím si to v praxi, ale ted mě honí čas a nemužu si dovolit zkoušet různá řešení, díky. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 5. prosinec 2009, 18:37:14 Předmět: |
|
|
no myslim ze cez OpenGL by to bolo rychlejsie. ale jedine co by to ulahcilo by bolo kreslenie ciar a ich vyplnanie. vsetko ostane je treba pocitat rucne. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
lovci

Založen: 04. 12. 2009 Příspěvky: 12
|
Zaslal: 5. prosinec 2009, 23:21:55 Předmět: OpenGL |
|
|
hm tak to na to prdím, nějakej extra výkon nepotřebuju, spíš mi jde o to vyplnění ploch..mě by zajimalo jak to, že to nejde tak jednoduše jako dřív, bylo to tím, že předtím se používala pixelová grafik a ted v java vektorová?
Takže to budu kreslit přes java 2D jenom nevím jak grabnout pixely z JPanelu, nebo jak kreslit do image. |
|
Návrat nahoru |
|
 |
slax
Založen: 07. 09. 2009 Příspěvky: 11
|
|
Návrat nahoru |
|
 |
lovci

Založen: 04. 12. 2009 Příspěvky: 12
|
Zaslal: 6. prosinec 2009, 17:05:16 Předmět: dík |
|
|
>slax
Tak to vypadá na přesně to co potřebuju dík moc  |
|
Návrat nahoru |
|
 |
|