recurse border

13 отговора 611 прегледа
#1

recurse border

Mozhe li niakoj da mi kazhe kakva e dulbochinata na recursiata za VC 6.0 i win89?

I wanna read interesting postingz
Отговор
в отговор на expeler #2

Re: recurse border

виж си в документацията за дълбочината на стека

(и широчината на beaf-стека)

Отговор
в отговор на мeceчeн циkъл #3

Re: recurse border

//e sega shte si prolichi kolko sum zelen

Kak?

V smisal sega mi zabiva sled ~32 000 obrushtenie, ima li nachin da napravia taka che da udulzha granicata?

I wanna read interesting postingz
Отговор
в отговор на expeler #4

Re: recurse border

Добре де, що за задача се решава с чак толкова дълбока рекурсия!?
Извинявай, че ти отговарям на въпроса с въпрос, ама ми е любопитно.

Пиркс

Отговор
в отговор на pyrx #5

Re: recurse border

...i kato se ima predwid che wsiaka chisto rekursiwna implementacia moje da se promeni na psewdo ili ne rekursiwna....

Отговор
в отговор на pyrx #6

Re: recurse border

Amiiii, znachi imam druga idea, no iskah s recursia,
zashtoto mi izglezhda po privlekatelno. Ideata e da
se zapulni poligon s daden cviat. usera clikva niakade
i ot tazi tochka s kordinati x, y zapochva recursiata
v smisal funkciata koiato promenia cveta na pixela i
zapisva stojnostta na cveta v pameetta se obrushta pak
kum sebe si no veche ne s mem_fill( x, y ); primerno a
s chetiri funkcii:

mem_fill( x - 1, y );
mem_fill( x + 1, y );
mem_fill( x, y + 1 );
mem_fill( x, y - 1 );

razbira se pravi se proverka za cveta na pixela predi
da se izpulni funkciata i po tozhi nachin se spira
recursiata. Vsichko si raboti normalno, no pri goliam
poligon, tochno kogato mem_fill se oburne kum sebe si
za ~32 000 -den put. [close] [debug] [details]
"<<<<<<. Sled kato si zavursha tupite
chertezi shte napisha dugata si idea s cikulche i
filvane na polygon chrez linii. I predi tova shte se
naspia, no ako ima niakakuv nachin da promenia
dulbochinata na recursiata, shte se radvam zashtoto
vupreki neoptimiziranossta, koiato se poluchava ideata
me kefi poveche. Tova poslednoto za profesionalisti
kato vas bi zvuzhalo tupo no.... Suzheliavam che ne
mozhah da buda lakonichen, prosto utre po tova vreme,
mozhe bi shte buda na sebe si i shte opraviam, kashata
koiato mi se struva che zaburkah sega.

I wanna read interesting postingz
Отговор
в отговор на expeler #7

Re: recurse border

Mi...kat si reshil floodfill da byde...

Naprawi si sobstwen 'stek'. I posle imash (w pswedokod)

push(x,y)
while not empty
{
pop(point)
setpixel(point)
if (...) push(x-1,y)
if (...) push(x+1,y)
if (...) push(x,y+1)
if (...) push(x,y-1)
}

Отговор
в отговор на expeler #8

Re: recurse border

Стандартно е 1МБ.

Може да се промени от Project/Settings/Linker/Output - Stack Allocations.

Отговор
в отговор на Hиkoлaй #9

Благодаря

Благодаря, точно това търсех.

I wanna read interesting postingz
Отговор
в отговор на expeler #10

Re: recurse border

Човече, floodfill не се пише с рекурсия.

Отговор
в отговор на Bonev #11

Re: recurse border

Или поне не там, където я правиш.

Отговор
в отговор на Bonev #12

Re: recurse border

Как се прави тогава?

Ами аз я правя и на displaya и в паметта заета от буфера на image-а.

I wanna read interesting postingz
Отговор
в отговор на expeler #13

Re: recurse border

мисля че ако сложиш условие за край на рекурсията дълбочина width+height няма да препълваш и няма да хабиш много стек. интересно че и аз съм правил подобен алгоритъм, само че не получих препълване, дори и без ограничението. не съм го пробвал, обаче това е максималното отстояние между две точки, така че би трябвало да стане.

Отговор
в отговор на expeler #14

Re: recurse border

Мисълта ми е, че ако искаш да го правиш с рекурсия, вместо да влизаш рекурсивно за всеки съсед, по-добре е да правиш цели линии (хоризонтални например) и да влизаш в рекурсията за нагоре и надолу.

А най-добре е да потърсиш в google как точно се прави. Няма нужда да се преоткрива топлата вода.

Отговор