feat(layout): Fibonacci sunflower distribution pour T1(27)+T2(30) agents overcrowded - supprime overlap, T0/T3 gardent cercle simple
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
@@ -475,13 +475,22 @@ A.forEach(function(a,i){
|
||||
let x,z;
|
||||
if(cnt===1){
|
||||
x=0;z=0;
|
||||
} else {
|
||||
} else if(cnt>=15){
|
||||
// WAVE 200: Fibonacci sunflower — optimal disc distribution (T1/T2 overcrowded)
|
||||
const R=(pw[a.t]/2)*0.92;
|
||||
// WAVE 190: Single circle — agents around meeting table
|
||||
const angle=(ti/cnt)*Math.PI*2 - Math.PI/2; // start from top
|
||||
const tableR=R*0.72; // agents sit at 72% of plateau radius
|
||||
const golden=Math.PI*(3-Math.sqrt(5)); // golden angle ~137.5°
|
||||
const theta=ti*golden - Math.PI/2;
|
||||
const rFrac=Math.sqrt((ti+0.5)/cnt);
|
||||
const discR=R*0.88; // 88% of plateau radius
|
||||
x=rFrac*discR*Math.cos(theta);
|
||||
z=rFrac*discR*Math.sin(theta)*0.72; // 72% Z perspective (less compression)
|
||||
} else {
|
||||
// Single circle for sparse tiers (T0=7, T3=13)
|
||||
const R=(pw[a.t]/2)*0.92;
|
||||
const angle=(ti/cnt)*Math.PI*2 - Math.PI/2;
|
||||
const tableR=R*0.72;
|
||||
x=tableR*Math.cos(angle);
|
||||
z=tableR*Math.sin(angle)*0.65; // 65% Z for perspective
|
||||
z=tableR*Math.sin(angle)*0.65;
|
||||
}
|
||||
|
||||
const url=_pk[a.n]||(a.r?'https://robohash.org/'+encodeURIComponent(a.n)+'?set=set1&size=200x200':'https://api.dicebear.com/9.x/adventurer/svg?seed='+encodeURIComponent(a.n));
|
||||
|
||||
Reference in New Issue
Block a user