Bonjour,
Je viens enfin de décider de m'inscrire sur ce forum, car malgré mes 2 années passées intenses en Java ainsi que la réalisation de petits projets graphiques, tels qu'une appli graphique permettant la retouche d'image, ou encore un petit jeu 2D en Swing.. je suis confronté à un problème simple à comprendre, mais à priori sans réponse pour le moment. Voici mon problème:
Je récupère un Shape à la suite d'une transformation affine d'un Rectangle (surtout pour faire une rotation), comme ceci:
Shape textBounds = at.createTransformedShape(g2d.getFontMetrics().getStringBounds(modName, g2d));
Jusque là, tout va bien, je me retrouve avec un shape pivoté dans le context du Graphics2D.
Ensuite je récupère une ligne, sous forme de Line2D, par exemple:
Line2D l1 = new Line2D.Double(0, 0, p1.x, p1.y)
Maintenant, mon soucis, c'est que je souhaiterais vérifier l'intersection entre le Shape précédemment récupéré, et la Line2D. Je n'ai trouvé aucune méthode permettant cela dans l'interface Shape, ni ailleurs. L'API Java permet de vérifier l'intersection entre une Line et un Rectangle, hors un rectangle n'est définit que par son origine et ses dimensions, et donc n'est pas pivoté ! Par ailleurs j'ai trouvé un moyen de parer à ce problème en transformant la ligne en Stroke, puis en utilisant les intersection d'Area, mais bien entendu, ceci est un bidouillage et n'est absolument pas précis du tout.
Voilà, merci d'avance si quelque peut m'aider à soulever ce problème, je dois trouver une solution d'ici la fin de semaine, merci.
Partager