Partager via


Lignes larges géométriques

La forme d’une ligne géométrique est déterminée par la largeur, le style de jointure et le style d’extrémité du pinceau, ainsi que par la transformation de monde en appareil actuelle dans la structure XFORMOBJ . La ligne peut être dessinée à l’aide d’un pinceau uni ou non.

Les pilotes du matériel plus avancé peuvent prendre en charge des lignes larges géométriques dans la fonction DrvStrokePath . GDI détermine si un pilote peut dessiner un chemin contenant une ligne géométrique en testant l’indicateur de fonctionnalité GCAPS_GEOMETRICWIDE dans la structure DEVINFO retournée dans l’appel à DrvEnablePDEV. Si le pilote n’a pas la fonctionnalité, ou si la fonction ne parvient pas à gérer une opération en raison du chemin d’accès ou du découpage trop complexe pour l’appareil, GDI transforme automatiquement l’appel en fonction DrvFillPath plus simple.

Une ligne géométrique large a une signification spécifique à une fonction graphique de pilote d’affichage. Un chemin contenant des coordonnées d’appareil est transformé en coordonnées mondiales à l’aide de l’inverse de la transformation actuelle. Une construction géométrique avec la largeur spécifiée obtient ensuite une version élargie du chemin, en tenant compte des jointures et des extrémités. Ce chemin d’accès est à nouveau transformé en coordonnées d’appareil et rempli avec le pinceau spécifié.

Le style d’une ligne large géométrique est spécifié par un tableau de valeurs à virgule flottante. Le tableau a une longueur finie, mais est utilisé comme s’il se répétait indéfiniment. La première entrée de tableau spécifie la longueur, en coordonnées mondiales, du premier tiret ; L’entrée suivante spécifie la longueur du premier intervalle. Après cela, les longueurs de tirets et les espaces alternent. Par exemple, le tableau de styles {3.0,1.0,1.0,1.0} entraîne le dessin d’une ligne avec des tirets longs et courts en alternance.

Le style peut être considéré comme le conducteur se déplaçant le long d’un chemin avant d’élargir, « effançant » les parties du chemin correspondant aux écarts. Cela divise le chemin d’accès en plusieurs sous-chemins. Le chemin rompu est ensuite élargi comme s’il n’avait aucun style de trait, en appliquant des extrémités et des jointures comme d’habitude. Les tableaux de style peuvent être de longueur impaire. Par exemple, le tableau de styles {1.0} amène le pilote à tracer une ligne avec des tirets alternés. L’état du style (défini comme la distance actuelle dans le tableau de style) est fourni pour le début du premier sous-chemin dans un chemin d’accès. Il est considéré comme réinitialisé à 0,0 au début de chaque sous-chemin suivant, ce qui se produit après toute opération MoveToEx Win32.