Ma question est à titre informatif, dans l'optique plus ou moins proche de réaliser un petit soft sous Delphi (v6 PE) pour le calpinage de plancher chauffant à circulation d'eau. Voici un exemple (très mal dessiné) de ce que je souhaiterais faire :
Pour ceux qui ne connaissent pas, voici deux adresses qui montrent la réalisation physique d'un plancher chauffant :
http://www.schluter-systems.fr/media/PROFIL-11.pdf
http://www.gedimat.fr/Fiche_MiseEnOe..._CHAUFFAGE.pdf
La méthode employée est la suivante :
- Acquisition de l'image en noir et blanc et "nettoyage" de celui ci (enlever toutes les cotes, les dessin de mobilier, etc...)
- Définition des échelles horizontale et verticale (pour le cas ou une éventuelle photocopie ou transmission par fax aurait déformée l'image)
- Définition des zones (la pièce ou, si la pièce est très grande, d'une partie de la piece). Chaque zone sera définie par un ensemble de points formant une figure géométrique fermée
- Définition du pas : la distance entre l'aller (en rouge) et le retour (en bleu). Cette distance est constante pour toute la zone considérée. Parfois, il arrive qu'on ne puisse faire passer que l'aller (ou que le retour) : voir le cas de la fenètre de la chambre. De plus, arrivé au centre de la pièce, il faut gérer le demi-tour, sachant qu'exceptionnellement dans ce cas le pas peut être plus petit ou plus large que le pas défini ci dessus.
- Le point de départ du tracé DANS CHAQUE ZONE est défini manuellement (passage de porte pour SdB, limite de placard pour chambre, etc). Le sens de rotation sera aussi défini manuellement. Le tracé des liaisons entre ce point et le collecteur (en orange) se fera probablement de façon manuelle
- La distance entre le premier tube (généralement l'aller, celui qui fait le premier tour de la zone) est constant pour toutes les zones, mais est différent du pas (sauf exception)
- Idéalement (question subsidiaire), chaque changement de direction ne peut se faire qu'en arc de cercle (le tube employé ne peut être plié à l'équerre, mais on peut le cintrer à 7 fois son rayon)
Toutes ces choses étant posées, auriez-vous une idée de la façon dont je dois m'y prendre pour que le tracé de chaque boucle se fasse automatiquement ? Et sans erreur ? Et sans que, une fois arrivé au centre ou dans un coin, le tracé ne reste bloqué ? Tout ce que j'ai trouvé me ramène à l'histoire du labyrinthe (toujours un mur à gauche/droite) ou un algo de 'Pavlidis' (dixit le forum Algo). Mais si j'ai bien compris, ces techniques me permettrait de tracer l'aller (encore faut-il que je sache comment faire comprendre à l'algo que pour le premier tour, la distance est de X, puis, à partir du deuxième tour, la distance est 2 fois le pas). Mais quid du retour et des cas tarasbicotés ?
Je suis preneur de tout explication, piste, guide, pseudo-code, code, etc...
Attention : je suis toujours très mauvais en math, donc je compte sur vous pour utiliser un vocabulaire compréhensible par un 'nul'![]()
PS : j'ai déjà parcoucu le forum algo, mais ils parlent une langue que je ne comprends pas bien : le 'mathéalgèbre'![]()
Partager