Partage
  • Partager sur Facebook
  • Partager sur Twitter

Graphics2D

problème d'opacité

    26 mai 2009 à 11:52:06

    Bonjour,

    Je suis en train de créer un PaintChat online. J'ai déjà programmé la majeur partie de mon programme mais je bloque sur l'un de mes outils.
    Un paint chat est une application de dessin Online (type GroupBoard). On y retrouve les outils de base du dessin (que l'on peu voir sous Paint par exemple) .

    Le principe est simple, avec la méthode mouseDragged, on repère la position de la souris et on stocke son point en mémoire. Si un point existait déjà alors on trace un trait qui les relie. Ceci est facilement faisable avec Graphics. Mais le problème c'est que pour le traçage des ligne Graphics ne tient pas compte d'une taille que l'on aurait établi. Pour cela on a besoin de Graphics2D, qui permet, grâce a BasicStroke, de gérer la taille de la ligne.

    public BasicStroke(float width,
                       int cap,
                       int join)
    


    je crée donc un objet Graphics2D, auquel je défini un BasicStroke tel qu'il puisse me tracer des ligne d'une taille prédéfinie, et que les fin de ligne soit rondes.
    Jusque la pas de problème, j'obtient ce que je désire.

    Cependant dés que je veux créer des lignes avec une opacité amoindrie je me retrouve devant l'obstacle que je croyais avoir surmonté en utilisant Graphics2D.

    En effet, le principe que j'utilisai avant avec Graphics était de tracer mes lignes, qui n'était rien d'autre que des rectangles avec une certaine orientation, puis de tracer des rond plein aux deux extrémités. Mais le fait de redessiner sur la forme faisait foirer l'opacité du trait:

    ScreenShot:


    Image utilisateur

    Sur ce ScreenShot vous pouvez voir au dessus un trait sans opacité, pas de problème, et en dessous on voit bien que la méthode utilisée par Graphics2D fait foirer mon opacité.


    Donc je pense que vous avez deviné ma question, existe t'il un moyen de palier a ce problème. J'ai essayé de créer une méthode qui dessinerai des demi cercla a la fin de mes traits.. mais c'est assez hard, et assez lourd pour une appli qui est destiné au net. Sinon il y a peut être un moyen avec les polygones mais la encore j'ai pas vraiment réussi. Et j'ai pas trouvé grand chose sur le net. :/



    Edit: Je viens de m'apercevoir que Graphics2D faisait exactement ce que je veux et que le problème venait de ma façon de faire. En fait j'ai juste a tracer un trait blanc avant de tracer le trait suivant.

    Je suis désolé pour le post de ce sujet inutile. Est il possible qu'un modérateur le supprime ?
    </span>
    • Partager sur Facebook
    • Partager sur Twitter

    Graphics2D

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown