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 11

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... :sharp:

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 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/