Myriad Blog 1.3.0 Tuesday, Sep 16th, 2014 at 02:56am 

Friday, Jul 10th, 2009 at 04:51pm
Bézier et autres "splines"

 
Dès les premières versions de nos programmes, le tracé de courbes (splines) s'est révélé être un vrai casse-tête. Les systèmes de l'époque ne proposait pas de fonction toute faite pour les tracer, aussi fallait-il se débrouiller, généralement en approximant tout cela avec des segments de droites.
 
Il y a presque 20 ans, avec l'aide de Jeff C., qui se reconnaîtra, nous avons imaginé une méthode récursive de tracé, que nous avons baptisé les CSplines. Au fil des annés ce tracé s'est amélioré, avec une gestion d'épaisseur de tracé variable, et d'un anticrénelage (antialiasing) qui permet par exemple à Harmony Assistant de tracer des accolades ou des liaisons d'aspect honorable.
 
Mais si, à l'écran, le résultat est plutôt satisfaisant, à l'impression, c''est une autre histoire.  
Sur une imprimante, impossible de jouer sur les niveaux de gris pour rendre les bords du tracé plus doux.
 
Afin d'obtenir un tracé moins crénelé, nous traçons de petits segments de remplissage, à la résolution de l'imprimante, c'est-à-dire généralement 300 ou 600 dpi.
 
C'est suffisant dans la plupart des cas, bien qu'un examen attentif de la page imprimée puisse montrer quelques imperfections. Mais quand on imprime dans un PDF, puis qu'on zoome fortement sur le résultat, le moteur de rendu du PDF ne gère pas bien la chose, et on obtient des choses bizarres comme celle-ci:

De plus, sur certaines imprimantes Macintosh, le tracé se fait étrangement à une résolution très faible, faisant apparaître les défauts à l'oeil nu sur la page imprimée.
 
La solution serait donc, maintenant que les systèmes d'exploitation ont suffisamment évolué et proposent généralement un tracé de courbes de Bézier, d'utiliser ces dernières.
 
Mais cela pose plusieurs problèmes : compatibilité graphique avec les documents déjà faits, sur lesquels les courbes ont peut-être été calées très finement, et surtout, compatibilité entre les divers systèmes (Mac OS, Windows), tant à l'écran qu'à l'impression.
 
Nous avons donc démarré une étude et réalisé quelques tests prometteurs, mais nous ne savons pas encore si ce changement pourra finalement être réalisé. Un proverbe français dit '"le mieux est l'ennemi du bien", et un proverbe anglais dit "if it works, don't fix it" (si ça marche, ne le répare pas)
by Olivier Guillion
Comments

Comment from Lutz Sunday, Jul 12th, 2009 at 08:36am
If it works, dont fix it.
Thats what I say to my boss veeeeery often. But he never listens to me. And most of the time he changes it from good to bad Later he changes it back and again and is very proud about how he has improved evreything.
 


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013