next up previous contents
suivant: Affichage à petite échelle monter: Qualité graphique des caractères précédent: Interprète de PostScript en   Table des matières

Simulation du remplissage de PostScript en Java

Le problème à résoudre est donc de remplir les surfaces délimitées par ces parcours, puisqu'il faut savoir à chaque fois si le parcours est à colorer ou pas, et si oui comment colorer juste l'espace entre les deux parcours.

Java fournit en standard un algorithme de remplissage pair-impair qui ne traite que les figures formées d'un seul tracé, alors que nos caractères sont formés de plusieurs tracés.

En PostScript, les différents algorithmes de remplissage se basent sur la notion de parcours orientés, alors que l'algorithme de remplissage de Java utilise la notion de forme. De plus, le remplissage des parcours en PostScript se comporte d'une façon différente s'il traite un caractère appartenant à une police, ou s'il traite une forme quelconque, et sait donc colorier les caractères formés de plusieurs parcours [39].

Figure 1.8: les parcours en pointillés sont coloriés en couleur de fond

La solution apportée est la suivante : au moment du dessin final à une échelle donnée, le caractère est transformé en un ensemble de polygones recalculés à la bonne échelle correspondant chacun à un parcours différent. À ce niveau, et puisque les parcours sont complètement disjoints, nous introduisons la notion de profondeur de polygone et nous la calculons de la façon suivante :

Ensuite, tous les polygones de profondeur paire sont remplis avec la couleur courante (noire par exemple), et tous les polygones de profondeur impaire en couleur de fond. Enfin il faut dessiner les polygones dans l'ordre de profondeur croissante.

L'algorithme de remplissage des caractères de PostScript est beaucoup plus complexe et est prévu pour gérer toute sorte de situations (polygones qui se croisent, polygones ouverts, etc.), or dans notre situation, les données de départ, c'est-à-dire la police de caractères, n'est formée que de parcours fermés disjoints. Notre algorithme donne les mêmes résultats que l'algorithme pair-impair de PostScript pour ce cas.

Enfin, avec cette technique de dessin dynamique des caractères à la bonne échelle, nous obtenons de très bon résultats de zoom, la figure 1.9 montre une copie d'écran avec un affichage à grande échelle.

Figure 1.9: affichage sur écran à grande échelle

next up previous contents
suivant: Affichage à petite échelle monter: Qualité graphique des caractères précédent: Interprète de PostScript en   Table des matières
Nabil Bouzaiene 2000-07-12