des glyphes en Java.Les pixels situés à l'intérieur de la forme sont affectés par l'opération de dessin, ceux situés à l'extérieur ne le sont pas.Tenter de remplir un segment de droite ne modifiera aucun pixel, car une telle forme ne contient aucun pixel. Il faut donc utiliser un rectangle fin pour que la forme contienne des pixels.
Peintures
Une peinture génère les couleurs utilisées pour chaque pixel de l'opération de remplissage. La peinture la plus simple est la couleur unie des images , ou toute combinaison de couleurs. Remplir une forme circulaire en jaune donne un cercle jaune plein, tandis que remplir la même forme circulaire avec une peinture générant une image produit un cercle découpé de cette image.
Composites
Lors de toute opération de dessin, il existe une source (les pixels produits par la peinture) et une destination (les pixels déjà affichés à l'écran). Normalement, les pixels de la source écrasent simplement les pixels de la destination, mais la composition permet de modifier ce comportement.
La composition, à partir des pixels source et de destination, produit le résultat final qui s'affiche à l'écran. La composition la plus courante est la composition par transparence l'anticrénelage est activé.
Le logiciel de peinture génère ensuite une couleur pour chaque pixel à colorier. Dans le cas courant d'un remplissage uni, chaque pixel aura la même couleur.
L'image composite prend les pixels générés par la peinture et les combine avec les pixels déjà présents à l'écran pour produire le résultat final.
Objets avancés
On peut considérer que ces objets accomplissent leurs fonctions en fonction des objets plus simples décrits ci-dessus.
Transformer
Chaque opération 2D en Java est soumise à une transformation , permettant ainsi de translater, faire pivoter, cisailler et redimensionner les formes lors de leur dessin. La transformation active est le plus souvent la transformation identité , qui ne modifie rien.
Le remplissage par transformation peut être vu comme la simple création d'une nouvelle forme transformée, puis le remplissage de cette forme.
Accident vasculaire cérébral
Outre l' opération de remplissage , Java 2D propose une opération de dessin . Tandis que le remplissage dessine l'intérieur d'une forme, le dessin en trace le contour. Ce contour peut être aussi simple qu'un trait fin, ou aussi complexe qu'une ligne pointillée dont chaque tiret a des bords arrondis.
L'objet responsable de la génération du contour est le trait . À partir d'une forme d'entrée, le trait produit une nouvelle forme représentant son contour. Par exemple, un segment de ligne infiniment fin (sans intérieur) peut être transformé en un rectangle d'un pixel de large.
Une opération de dessin peut donc être décrite comme la création d'un nouvel objet tracé, puis son remplissage.
Techniquement parlant, le trait doit seulement accepter une forme d'entrée et en produire une nouvelle. L'implémentation du trait fournie avec Java 2D respecte les règles de contour décrites ci-dessus, mais un trait personnalisé peut produire n'importe quelle forme.
Optimisations
Conceptuellement, dessiner une ligne noire droite en Java 2D peut être vu comme la création d'un segment de ligne, sa transformation selon la transformation actuelle, son tracé pour créer un rectangle mince, l'interrogation de cette forme pour calculer les pixels affectés, la génération des pixels à l'aide de vectorielles .
Interopérabilité Java2D / OpenGL
Depuis Java SE 6 , Java2D et OpenGL sont devenus interopérables, permettant par exemple le dessin de graphismes 3D animés au lieu d'icônes sur un bouton (voir JOGL ).