In article <
wt91ug9...@marceau.mines-albi.fr>,
Paul Gaborit <Paul.G...@invalid.invalid> wrote:
> À (at) 04 Nov 2012 12:12:48 GMT,
> Nicolas George <nicolas$
geo...@salle-s.org> écrivait (wrote):
>
> > Paul Gaborit , dans le message <
wt9390p...@marceau.mines-albi.fr>,
> > a écrit :
> >> Et pourtant, sur l'exemple suivant, ça marche parfaitement. Peut-être
> >> n'avez-vous pas bien décrit votre structure de données...
> >
> > Si tu relis son message, tu peux voir que tous ses tableaux ne sont pas
> > emboîtés à la même profondeur. Je soupçonne un mauvais design à la base,
> > mais il peut y avoir une raison légitime.
>
> Ah oui. Exact. Je n'avais pas remarqué que les deux premiers éléments
> étaietn de simples tableaux alors que les suivants étaient des tableaux
> de tableaux. Cette structure de données n'est donc pas régulière.
>
> Avant de fournir une solution, j'aimerais être sûr que ce n'est
> effectivement pas une erreur de design.
>
> Attendons une réponse...
Bonjour,
Non, se n'est pas une erreur de design. C'est les données qui sont comme
ça. Le script perl analyse un fichier postscript et en extrait les
points qui définissent un chemin. par exemple :
1845.0708 1924.1575 m
1921.6063 2003.5276 L
1975.4645 2063.0551 1921.6049 2148.0945 2049.1653 2148.0945 C
2173.8897 2148.0945 2173.8897 2043.2126 2114.3622 2043.2126 C
2006.6456 2043.2126 L
1969.7952 2026.2047 1969.7952 1961.0079 2006.6457 1924.1575 C
2038.0392 1892.764 2108.3217 1915.7041 2114.3622 1961.0079 C
2120.0315 2003.5276 2233.1533 1893.5255 2142.7086 1850.4567 C
2023.6535 1793.7638 1816.7244 2003.5276 1816.7244 2063.0551 C
On a chaque fois un couple de valeurs <x,y>. Pour certaines instructions
comme 'm' (moveTo) et 'L' (lineTo), un seul couple <x,y>.
Pour d'autres instructions comme 'C' (curveTo) en plus du point <x,y>,
il y a les coordonnées des 'banlanciers' (cf. courbe de bezier) : 3
points.
Et donc un tableau de tableaux 'variables'.
C'est un peu complexe en effet. Le map{} est trop compliqué ou pas
applicable (enfin pour moi). Je me suis débrouillé autrement en
analysant deux fois les lignes.
La première boucle recherche juste les minimums.
La deuxième boucle transforme les points (ajout des minimuns) et les
enregistre dans le tableau final.
Pour le fun, je veux bien voir l'utilisation de map{} sur une telle
structure.
En tout cas, merci de votre aide
--
klp