So wählen Sie eine Linie

So, ich bin versucht, herauszufinden, wie zu implementieren ist eine Methode der Auswahl der Linien oder Kanten in einer Zeichnung Gegend, aber mein Mathe ist ein bisschen fehlt. Dies ist, was ich so weit gekommen:

  • Eine Sammlung von Zeilen, jede Zeile hat zwei Endpunkte (eine zum starten und eine zum Ende der Zeile)
  • Die Linien sind korrekt gezeichnet auf einer Leinwand
  • Mausklicks Ereignisse empfangen werden, wenn Sie auf den canvas-Bereich, also ich kann die x-und y-Koordinate des Mauszeigers

Ich weiß, ich kann die Iteration durch die Liste der Linien, aber ich habe keine Ahnung, wie man konstruiere einen Algorithmus, um eine Linie durch einen gegebenen Koordinate (d.h. mit der Maus klicken). Hat jemand irgendwelche Ideen oder zeigen Sie mir die richtige Richtung?

//import java.awt.Point

public Line selectLine(Point mousePoint) {
    for (Line l : getLines()) {
        Point start = l.getStart();
        Point end = l.getEnd();
        if (canSelect(start, end, mousePoint)) {
            return l; //found line!
        }
    }
    return null; //could not find line at mousePoint
}

public boolean canSelect(Point start, Point end, Point selectAt) {
    //How do I do this?
    return false;
}
InformationsquelleAutor Spoike | 2009-11-25
Schreibe einen Kommentar