|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2011
Città: Roma
Messaggi: 168
|
[Batch] Ricorsione multipla vs iterazione
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). Codice:
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 C'e' qualcuno che mi può dar una mano per trasformarla in versione iterativa? Qui trovate il codice attuale. Dos batch Raycast Grazie in anticipo. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:49.