1

bon, voila, Comme l'indique le titre de ce topic (Bon Secours Populaire aurait aussi bien fait l'affaire, ms vu ke je viens de déjeuner, beurre sans pain m'a paru plus approprié grin), je voudrais votre avis sur certaines structures de données, notemment les arbres binaires.

Je me suis penché sur les BSP, et je me demandais quelle structure donner à un tel arbre... Par structure, je n'entends pas comment l'arbre est fait, avec ses sous arbres gauche et droits, mais à une organisation en mémoire...

Pour ceux que ce nom hérisse, petit rappel:

arbre BSP simple:
bsp02.gif


Les carrés A,B,C,D,E,etc... sont les noeuds de l'arbre. Les sous arbres gauche et droits correspondent aux deux subdivisions de l'espace du noeud courant, il n'y a qu'un polygône par noeud.
On peut le parcourir avec un code du genre:

Walk_BSP(node)
{
  if(leftsubnode(node)!=NULL)
  {
    Walk_BSP(leftsubnode(node))
  }
  if(rightsubnode(node)!=NULL)
  {
    Walk_BSP(rightsubnode(node))
  }
}


ce qui est un procédé extrèmement simple...
quand le code à parcouru tous les sous arbres gauche de la branche courante (leftsubnode(node)=NULL), il passe aux sous arbres droits et reprend le processus à 0, quand le noeud courant n'a plus de sous arbres, la routine quitte et revient à son précédent appel, jusqu'à ce que tous les noeuds de l'arbre aient été parcourus...

Maintenant, voici mon problème:
il est aisé avec un langage de haut niveau comme le C/C++ d'implémenter une structure d'arbres bsp, notemment par l'emploi de trucs du genre node->leftnode ou node->rightnode. Seulement, comment organiser une telle structure directement?
j'avais pensé à quelquechose de la sorte:

node dc.w pointer_leftnode,pointer_rightnode,pointer_polygon

mais je me demandais s'il n'y avait pas une approche plus efficace du point de vue de la place prise, ou de la simplicité de parcours...
est-ce qu'il y a une méthode de stockage du bsp meilleure que la mienne (sûr à 100% grin), et donc vu que oui, laquelle? smile

N'importe quelle idée est la bienvenue smile
(ah, oui, j'oubliais, le parcours doit se faire en temps réel, le plus rapidement possible, donc la structure doit être la plus simple possible grin)
[edit]Edité par sBibi le 01-01-2002 à 14:47:47[/edit]
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

2

waow! vs avez l'air vachement inspirés par ça sad
17 vues, 0 réponses sad
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

3

Ben, tu fais comme les langages de moyen niveau (le C par exemple). Tu alloues un handle avec HeapAllocPtr, et dedans, tu mets:
- la valeur en .w
- les 2 pointeurs en .l
Après, node->value se réduit à (an), node->leftnode à 2(an) et node->rightnode à 6(an).
[edit]Edité par Kevin Kofler le 01-01-2002 à 19:48:38[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

ok, ben c ce que je fais en fait, dc y a pas d'autre moyen?
pke si il y a des noeux avec un seul anfant, et tous les noeux de fin, ils auront un ou deux longs inutiles...
enfin bon, c pas grave, un bsp ça doit pouvoir se compresser pas mal...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

5

je dirais plutôt Boulette Sandwitch et Potiron. J'arrête mes salades ! smile
sBibi, ch'peux pas t'aider sad mais j'avais envie de te monter que je suis inspiré quand même, malgré les 48 vues et 1 réponse smile
:D