Arrangements de rectangles

Résolu
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 26 juin 2007 à 10:14
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 2 juil. 2007 à 19:40
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

TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
2 juil. 2007 à 01:09
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
3
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
26 juin 2007 à 13:41
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
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 juin 2007 à 13:55
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.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
26 juin 2007 à 13:55
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 juin 2007 à 14:08
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.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
26 juin 2007 à 18:59
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 ?
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
27 juin 2007 à 00:57
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
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
27 juin 2007 à 13:41
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.
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
27 juin 2007 à 17:02
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
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
2 juil. 2007 à 09:34
Merci, je regarde ça tout de suite...

<hr width="100%" size="2" />Julien.
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
2 juil. 2007 à 13:52
cela corespond il a ce que tu recherais ?

TeBeCo
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
2 juil. 2007 à 19:40
Ouaip merci...

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