Modulo:Discendenza: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
mNessun oggetto della modifica
Riga 38:
table.insert(tabella[plev], pid) -- inserisce la persona in tabella
for i, v in pairs(pers[pid].figli) do
pers[v].id = i -- assegna numero delcome figlio
nn = nn + organizza(v, plev+1) -- ricorsione per assegnare y ai figli e contarli
end
Riga 45:
 
local function limSx(pid, delta, dt) -- calcola la posizione più a sinistra tra gli elementi del ramo per ogni y
if (dt[pers[pid].y]) then
local tt = dt
if dt[pers[pid].y] = math.min(ttdt[pers[pid].y]), thenpers[pid].x+delta)
tt[pers[pid].y] = math.min(tt[pers[pid].y], pers[pid].x+delta)
else
ttdt[pers[pid].y] = pers[pid].x + delta
end
for i, v in pairs(pers[pid].figli) do
ttdt = limSx(v, delta+pers[pid].sp, ttdt)
end
return ttdt
end
 
local function limDx(pid, delta, dt) -- calcola la posizione più a destra tra gli elementi del ramo per ogni y
if (dt[pers[pid].y]) then
local tt = dt
if dt[pers[pid].y] = math.max(ttdt[pers[pid].y]), thenpers[pid].x+delta)
tt[pers[pid].y] = math.max(tt[pers[pid].y], pers[pid].x+delta)
else
ttdt[pers[pid].y] = pers[pid].x + delta
end
for i, v in pairs(pers[pid].figli) do
ttdt = limDx(v, delta+pers[pid].sp, ttdt)
end
return ttdt
end
 
Line 182 ⟶ 180:
end
 
local function massimoXY(pid, x, yt) -- calcola numero colonne e righe totali
tt t[pers[pid].y1] = math.minmax(ttt[pers[pid].y1], pers[pid].x+delta)
local t = {}
t[12] = math.max(xt[2],pers[pid].xy)
t[2] = math.max(y,pers[pid].y)
for i, v in pairs(pers[pid].figli) do
t = massimoXY(v,t[1],t[2])
end
return t
Line 193 ⟶ 190:
 
local function mostra(pid,allinea,largo) -- crea HTML tabella finale
local xy = massimoXY(pid, {0, 0})
local p1, p2, p3 -- posizione all'interno della riga per 1. parte superiore; 2. parte con testo; 3. parte inferiore
local n1 -- padre dell'ultimo elemento analizzato (per connessione tra fratelli)