... | ... | @@ -113,7 +113,7 @@ Dans ce nouveau code, on va introduire deux difficultés (toutes relatives !): |
|
|
|
|
|
On a "factorisé" le code en définissant dans la fonction onclick_proche_2courbes une sous-fonction qui fera l'opération sur une courbe, son annotation associée et son "carré" fluo associé.
|
|
|
|
|
|
Dans l'illustration ci-dessus, à droite, on peut vérifier que le point sélectionné n'est pas forcément le plus proche "en distance en unité de la courbe". Pour vérifier facilement la différence de comportement, il suffit de ne pas passer d'argument ratio_w_sur_h à la sous-fonction operations_sur_une_courbe, ou alors en passant None : les calculs se feront alors en "distance en unités des données".
|
|
|
Dans l'illustration ci-dessus, à droite, le clic de souris est matérialisé ici par une croix bleue, et ses coordonnées sont écrites dans le titre. On peut vérifier que le point sélectionné n'est pas forcément le plus proche "en distance en unité de la courbe". Pour vérifier facilement la différence de comportement, il suffit de ne pas passer d'argument ratio_w_sur_h à la sous-fonction operations_sur_une_courbe, ou alors en passant None : les calculs se feront alors en "distance en unités des données".
|
|
|
|
|
|
```python
|
|
|
import matplotlib.pyplot as plt
|
... | ... | @@ -226,6 +226,7 @@ plt.show() |
|
|
## Avec un "PickEvent" :
|
|
|
|
|
|
La méthode précédente fonctionne, mais elle a l'inconvénient de faire des calculs sur l'ensemble des points de la courbe. On va utiliser la notion de _picker_, toujours sur une figure ne comportant qu'une seule courbe, afin de réaliser une **présélection**. Si on a plusieurs courbes, on peut ne lier le picker qu'à certaines d'entre elles. Si plusieurs sont réceptives au picker, la fonction liée sera déclenchée une fois pour chacune.
|
|
|
Notre conclusion est que cette fonction semble intéressante quand il y a une courbe, mais quand il y en a plusieurs l'action va être exécutée une fois par courbe "réceptive" ; pour notre objectif, cela ne permet pas de déterminer "LE" point le plus proche, mais un point par courbe. La fonction est sans doute adaptée à d'autres usages, comme "identifier les courbes qui ont un point proche du clic de souris par exemple.
|
|
|
|
|
|
![sélection picker](uploads/510c61180d0c1d51a059871fed23ab1c/selection_picker.png)
|
|
|
|
... | ... | |