Savoir si on se trouve sur une ligne ou une autre forme

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

il y a un certain moment, je me suis décider à créer un petit logiciel de "dessin technique". (2D)

J'arrive pour le moment tracer mes lignes, cercle, carré, etc.
Mon objectif serait que quand je passe sur un de ces éléments, je le colore d'une couleur. Mais je ne sais pas du tout comment m'y prendre.

Plus d'info sur le projet:

  • Créer sur Javafx
  • Les dessins se font dans un "canvas"

Image du logiciel

+0 -0
Auteur du sujet

Exactement, un hover quoi.. et également si possible un focus d'une autre couleur.

[edit]

Je dois préciser que j'ai déjà une potentiel solution pour la ligne, mais celà ne fonctionne que si on se trouve exactement sur la ligne.

Or moi j'aimerais que ça active tout ceci en se trouvant à une certain tolérance de pixels à côté de la ligne (Genre 10px)

Édité par WinXaito

+0 -0
Auteur du sujet

Oh autant pour moi je n'y avais vraiment pas fait attention, merci de me le faire remarquer.

Sinon, je n'ai jamais utilisé cette techno. Quelle est la solution que tu utilises pour colorer ta ligne ?

(xb-xa)*(ym-ya)-(yb-ya)*(xm-xa) si ceci == null, alors on se trouve sur la ligne. (a = point 1, b = point2 et y = curseur souris). Merci a mouton qui m'avait aider jusque là

Donc la à mon avis il est surtout question de math plutôt que de techno utilisé.. après s'il y a un moyen automatique je ne dis pas non, mais ça m'étonnerais énormément.

+0 -0

Pour ta ligne, il faudrait alors la considérer comme un rectangle de largeur 10px.

Il y a ce tutoriel sur les collisions que j'avais lu il y a un certain temps. Il explique justement comment savoir si un point se trouve dans une forme (donc des cercles et des polygones) dans le chapitre 1 et 2. Je crois que les exemples sont en langage C, mais les algorithmes sont expliqués assez clairement pour être implémentés facilement dans n'importe quel langage.

(Je ne connais pas trop Java et sa bibliothèque, donc je ne peux pas te dire s'il existe déjà des fonctions qui font cela.)

Un dernier truc : pourquoi comparer une opération arithmétique avec null ?

+2 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte