OldComp.cz http://www.oldcomp.cz/ |
|
Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 http://www.oldcomp.cz/viewtopic.php?f=113&t=7606 |
Stránka 1 z 1 |
Autor: | fitko [ 12.08.2019, 13:24 ] |
Předmět příspěvku: | Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 |
Nemáte niekto v archíve z hlbokej minulosti algoritmus na vyplnenie plochy v TP 3.0 pod Sharp MZ 800? Chcem oživiť retroprojekt graf. editora z detstva a trochu som sa zasekol... |
Autor: | tomascz [ 12.08.2019, 15:58 ] |
Předmět příspěvku: | Re: Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 |
Sice nemám, ale doporučil bych tuto knížku, kde je algoritmus popsán na str.90 pascalovským pseudokódem. Kód: procedure SEED FILL ( x , y, { s tartovací bod } bc, { barva hranice } fc : integer { barva plnění } ); var i: integer; begin i : = Get Pixel Color ( x , y ); { vrací barvu p ixelu ( x, y) } if (i <> bc ) and (i <> fc ) then begin Set Pixel Color ( x , y , fc ); { nastaví barvu pixelu (x, y) } SEED FILL ( x+ l , y , bc , fc ); SEED FILL ( x- I , Y , bc , fc ); SEED FILL ( x , y+ l , bc , fc ); SEED FILL ( x , y- l , bc , fc ); end end { SEED FILL } Kromě toho jsou tam i další algoritmy, které by se mohli do tvého editoru šiknout |
Autor: | Panda38 [ 12.08.2019, 16:34 ] |
Předmět příspěvku: | Re: Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 |
Měl by tam být ještě čítač hloubky vnoření rekurze, aby u složitého obrázku nepřetekl zásobník. |
Autor: | _dworkin [ 14.08.2019, 12:21 ] |
Předmět příspěvku: | Re: Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 |
Nejméně náročné řešení na velikost paměti (kromě jiného pomalejšího algoritmu) je pomocí fronty a ne zásobníku/rekurze. Fronta by měla být maximálně tak velká jako je největší obvod při kreslení výplně. |
Autor: | Busy [ 14.08.2019, 14:57 ] |
Předmět příspěvku: | Re: Fill area algoritmus v Turbo Pascal 3.0 pr MZ 800 |
Tak ono je v principe jedno ci sa pouzije zasobnik alebo fronta, zmeni sa iba poradie ktorym sa plocha vyfarbuje. Samozrejme myslim pripad ked sa ten zasobnik vyuziva rovnako efektivne ako fronta. |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |