salut .
peut-on récupérer l'ensemble des points(x,y) qui composent un objet Line2D ?
pour le moment , j'ai implémenté une solution mathématique (appartenance d'un point a une ligne) ,mais je veut me profiter des classes java s'il on a ?
salut .
peut-on récupérer l'ensemble des points(x,y) qui composent un objet Line2D ?
pour le moment , j'ai implémenté une solution mathématique (appartenance d'un point a une ligne) ,mais je veut me profiter des classes java s'il on a ?
ça ,ça donne les deux points extrémités .
mais moi je veut tous les points qui constituent le segment
Disons que techniquement parlant, ce sont les deux points qui "composent" un objet Line2D
Il y a une méthode contains(), mais qui apparemment n'est pas fonctionnelle pour les Line2D (renvoie toujours false...)
La méthode ptSegDist() renvoie la distance à ton objet sinon...
Et au pire, si rien ne marche, il faut interpoler avec les deux points extrémités, genre algo de breseham...
Un segment est une portion de droite délimitée par deux points. Mais il n'empêche qu'il est mathématiquement constitué d'une infinité de points, au même titre qu'une droite (l'infini n'étant pas quantifiable, il n'est pas possible de "compter" les points)
Sur un écran d'ordi, on ne parle plus de points mais de pixel. Et là c'est autre chose. Un pixel est un quantum d'écran, et on peut donc les dénombrer en nombre précis, vu qu'il y en a un nombre bien déterminé.
tchize_ ne faisait qu'apporter une précision... mathématique!
Ca fonctionne avec ptSegDist()?
Je crois que tu confond un segment et ses points, au sens mathématique et donc représenté par line2D qui est un objet géométrique pur, et sa réprésentation à l'écran, qui n'est qu'un approximation, qui dépendra nottement des transforms appliqué au Graphics mais aussi de la précision demandé à ce graphics (lissage ou non du segment, par exemple). Il serait donc peut etre préférable que tu précise quel genr de liste de points tu veux? Si tu veux tous les points d'un segment au sens mathématique, il y en a une infinité, on devra donc utiliser une formule mathématique d'appartenance.
ben voila . je vais rien rajouter a part que merci pour vous tous,mais je me dis que peut être le fait de poser mon problème principale était mieux car peut être la solution idéale m'échappe.
bon mon but initiale est de faire une interpolation de mouvement avec les thread , d'une forme 2D d'un position A vers la position B, donc j'ai pensé a récupérer les coordonnées des points(pixel) entre A et B et je pas encore réfléchit encore à la solution si la trajectoire du déplacent ne sera pas une droite mais une courbe ou une forme quelconque.
Il dépendent de beaucoup de chose:
l'epaisseur de la ligne
la ligne est est-il discontinue?
Le Graphics2D fait-il de l'anti-aliasing?
Le seul moyen de calculer ça efficassement c'est encore de créer un BufferedImage où tu dessine la ligne puis tu scanne les pixel. C'est loin d'être performant masi ca correspond exactement à ce qui sera afficher. Mais vu ton problème initial, comme il s'agit d'un mouvement qui suis un segment de droite, tu devrais te contenter des equations mathématique, ce sera plus simple ^ ^
Bon, ben plutôt que d'aller récupérer des pixels, autant calculer les positions directement.
Breseham...
voila comme je vous ais dis , la solution m'echappe précisément la bonne stratégie m'echappe.
en fait j'ai réussie a faire l'interpolation suivant une ligne en utilisant l'équation mathématique d'un segment [AB] ,mais il me vient a l'esprit de changer la stratégie et je me dis au lieu de spécifier le point de départ et d'arrivé ,pourquoi ne pas dessiner la trajectoire avec la souris et cela reste fonctionnel avec n importe quelle trajectoire ; et lors du dessin du trajectoire , je prélève les pixels dans mouseMoved... ou mouseDragged (c'est mon choix )..vous voyez ,je vous ais dits la solution idéale m'échappe ou peut être mon cerveau m'échappe
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager