Voor een project @ stage heb ik een aantal Bézier curven. Deze worden aangemaakt door (parameters even weggelaten):
Wanneer er nu ergens geklikt wordt, wil ik kunnen bepalen of er al dan niet op een curve geklikt is, en zo ja .. op dewelke.
Hiervoor zou ik dan kijken of er curven liggen in een radius van 5px van het punt waar geklikt werd, door naar de bounding box (getRectangle()) te kijken. Is dit er 0 of 1, dan is er geen probleem. Zijn dit er meerdere, dan moet ik de afstand van elk van die curven tot het punt kunnen berekenen.
Hiervoor heb ik deze pdf gevonden, maar echt goed snappen doe ik het toch niet. Na hier wat rondgevraagd te hebben, blijkt dat ik voor elk punt van die curve de afstand tot het punt zou moeten berekenen, zodat ik de kortste afstand van die curve tot het punt weet. Vervolgens kan ik zien welke curve de kortste afstand tot het punt heeft.
Mijn vraag (in tegenstelling tot het antwoord) is dan ook simpel: op welke manier kom ik te weten op welke curve geklikt is?
Java:
1
2
3
4
5
6
| // pad clearen gPath.reset(); // beginpunt instellen gPath.moveTo(); // controlepunten en eindpunt instellen gPath.curveTo(); |
Wanneer er nu ergens geklikt wordt, wil ik kunnen bepalen of er al dan niet op een curve geklikt is, en zo ja .. op dewelke.
Hiervoor zou ik dan kijken of er curven liggen in een radius van 5px van het punt waar geklikt werd, door naar de bounding box (getRectangle()) te kijken. Is dit er 0 of 1, dan is er geen probleem. Zijn dit er meerdere, dan moet ik de afstand van elk van die curven tot het punt kunnen berekenen.
Hiervoor heb ik deze pdf gevonden, maar echt goed snappen doe ik het toch niet. Na hier wat rondgevraagd te hebben, blijkt dat ik voor elk punt van die curve de afstand tot het punt zou moeten berekenen, zodat ik de kortste afstand van die curve tot het punt weet. Vervolgens kan ik zien welke curve de kortste afstand tot het punt heeft.
Mijn vraag (in tegenstelling tot het antwoord) is dan ook simpel: op welke manier kom ik te weten op welke curve geklikt is?