PDA

View Full Version : [Batch] Ricorsione multipla vs iterazione


einstein1969
18-04-2016, 11:01
Salve a tutti,

Sto lavorando a uno script che visualizza il risultato di un raycast dentro una finestra batch. La versione attuale implementa un algoritmo DDA ed e' abbastanza veloce, circa 300ms per un intero riquadro di circa 64x65 caratteri.

Vorrei velocizzare questa procedura ultiriormente ed ho pensato ad una tecnica di accelerazione molto usata che si chiama ray packects. Ossia i raggi vengono impacchettati insieme e il calcolo viene eseguito solo sulle estremità.

Questa e' la versione in linguaggio naturale che include però due chiamate in coda ricorsive. (Non so se e' come il caso di una chiamata ricorsiva multipla).


subroutine raypacket (from, to)
if from = to then raytraverse(from) //problema banale
if from-to=1 then raytraverse(to); raytraverse(from) // problema banale
else
destination1=raytraverse(from)
destination2=raytraverse(to)
if destination1=destination2 then
if from - to > 1 then linear_interpolate_distance(from,to)
else begin
rem ricorsione multipla
raypacket (from, from+(to-from)/2)
raypachet (from+(to-from)/2+1, to)
end
end


La versione ricorsiva in batch risulterebbe MOLTO LENTA per via delle CALL

C'e' qualcuno che mi può dar una mano per trasformarla in versione iterativa?

Qui trovate il codice attuale. Dos batch Raycast (http://www.dostips.com/forum/viewtopic.php?f=3&t=5824)

Grazie in anticipo.