html5 Canvas beim Klicken auf Bezier Pfad Shape Detection

8

Ich habe eine Leinwand mit einigen unregelmäßigen Formzeichnungen, und ich hätte gerne ein Feedback, wenn jemand auf einen bestimmten klickt?

Ich habe überall nach diesem gesucht und habe nur Lösungen für Rechteck gefunden.

Ich denke, dass es möglicherweise mit isPointInPath () zu tun hat, aber ich muss noch eine kurze Erklärung finden, wie man es benutzt.

Jede Hilfe willkommen.

    
Brousselaine 19.08.2010, 04:54
quelle

3 Antworten

13

Ich habe ein Tutorial erstellt, das eine zweite unsichtbare Leinwand für die Objektauswahl / Treffertests verwendet. Zeichnen Sie alle Ihre Formen nacheinander auf die zweite Leinwand, bis eine von ihnen ein schwarzes Pixel hat, an dem sich die Maus befindet. Dann hast du dein Objekt gefunden!

Hier ist ein bisschen von dem Tutorial, das ich über die Auswahl von Objekten mit Leinwand geschrieben habe:

%Vor%

Meine vollständige Demo verwendet nur Rechtecke, aber in einer späteren Version werde ich Kreise / Pfade / Text verwenden.

Wenn Sie die Demo und meinen vollständigen Code sehen möchten, hier .

    
Simon Sarris 23.08.2010 15:27
quelle
0

Sie können einen Pathiterator verwenden, der alle Formen in angenäherte Polygone verwandelt. Verwenden Sie dann einen "Point in Polygon" -Algorithmus, um zu überprüfen, ob der Punkt in der Form ist.

    
Thomas Ahle 17.05.2012 01:09
quelle
0

Dies kann mit Path2D erreicht werden.

%Vor% %Vor%
    
Ako 23.08.2015 21:06
quelle

Tags und Links