Arrangements de rectangles

Résolu
Signaler
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Bonjour,

Je cherche à optimiser le placements de rectangles dans une colonne verticale.
Pour être plus clair, ouvrez Outlook, le calendriez et ajoutez quelques évènements qui se chevauchent, Outlook arrange parfaitement les rectangles représentatifs de chaque évènements dans la colonne du jour (en mode vue de la semaine ou du jour...).
J'aimerais faire la même chose, j'ai mes rectangles qui se chevauchent pour le moment et je cherche un algorithme pas trop gourmand pour les placer comme Outlook le ferait.
Merci pour vos idées !

<hr size="2" width="100%" />Julien.

12 réponses

Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

et voila comme promis :
http://www.vbfrance.com/code.aspx?ID=43309
je laisse a tes soins gérer l'interface graphique et la developpé un peu plus :D

TeBeCo
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

tu pourrais faire une impression d'ecran mettre l'image sur http://imageshack.us et donnez le "DERNIER" lien vers l'image de la liste fourni que je vois a quoi cela ressemble car je ne peux pas tester sous outlook (je l'ai pas surtout)

TeBeCo
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Ouaip voilà...

J'arrive pas à déterminer le raisonnement général de placement des rectangles pour arriver à ce genre de choses...
(Chez moi pour le moment, tous les rectangles on la meme largeur et se superposent dans la colonne...)

<hr width="100%" size="2" />Julien.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

Ce qui est clair peut en général s'exprimer clairement, il me semble.

En lieu et place de te référer à ce que fait Outlook (et donc d'attendre que quelqu'un aille voir ce dont il s'agit... à condition qu'il s'intéresse lui-même à OutLook...et... qu'il s'en serve...) , tu devrais te montrer capable d'exprimer clairement tes propres tenants et aboutissants.
Je refuse, en ce qui me concerne; de fonctionner autrement !
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Ca marche jmfmarques, j'essayais juste d'être plus clair...

Bien, donc je dois placer une série de rectangles de hauteurs et positionnements verticaux fixes dans une colonne de largeur fixe. Je dois donc jouer sur leur positionnement horizontal (Left) et leurs largeurs (Width) afin de les agencer de manière à ce qu'ils ne se superposent pas et qu'ils occupent un maximum d'aire possible.

Voilà, daignes-tu m'aider
<hr width="100%" size="2" />Julien.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bon,

Comme tu le sais peut-être, je ne développes pas sous VB.Net, mais sous VB6.
Celà me parait avoir peu d'importance en ce sens que ce qui me semble le plus important, dans cette affaire, c'est l'algorithme d'empilement, le reste n'étant que de la mise en code.
Il me semble avoir fait, il y a quelques mois, un petit code d'empilement de briques pour un forumeur.
Je vais voir s'il est encore sur ma machine et reviens.
Il est clair que ce code (en VB6, je le répète) ne pourra directement s'appliquer à ton cas, mais simplement te servir d'exemple de manoeuvre d'empilement.
Es-tu d'accord ?
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

laisse moi qq jour et je te poste une source qui le fait (j'ai access qu'une heure par jour a on IDE de developpement c'est un peu limite :D)

TeBeCo
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Oui bien sûr jmfmarques, et puis j'ai fais du VB6 avant .Net donc ca ne devrait pas poser de problème
Merci à vous deux...
Sinon, il me semble après quelques essais qu'un comportement global est de placer les plus petits rectangles à gauche puis les plus en plus grands de plus en plus à droite, mais ce n'est pas si simple dans la pratique, j'imagine que vous vous en êtes rendu compte

<hr width="100%" size="2" />
Julien.
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

l'algo est bcp plus simple que ca :p
tu tri par heure de debut
ensuite tu les prend un a un et tu les insert les un a la suite des autre
si jamais ya chevauchement tu te deca d'une colonne a droite (cette ligne se repete jusqu'a trouvé une colonne dispo)

apres tu prend le prochain tu regarde la premiere colonne si tu peux inserer et tu boucle c'est tout

prioriété a gauche puis decalage a droite c'est tout
le seul truc a géré la dc'est une implementation d'interface pour le tri et la fin des des rectangle par colonne utilisé
comme dit avant j'ai commencé un code deja je te le poste prochainement

TeBeCo
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Merci, je regarde ça tout de suite...

<hr width="100%" size="2" />Julien.
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

cela corespond il a ce que tu recherais ?

TeBeCo
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Ouaip merci...

<hr width="100%" size="2" />