Javascript zeichnet eine dynamische Linie

8

Ich suche Javascript-Code, damit der Benutzer eine Linie zeichnen kann (auf einem Bild).

Genauso wie das Linienwerkzeug in Photoshop (zB):

Der Benutzer klickt auf das Bild, zieht die Maus (während die Linie zwischen dem Startpunkt und dem Mauspunkt dynamisch gezogen wird).

Ich würde auch eine aufrufbare Funktion benötigen, um der Seite die Start- und Endkoordinaten zu senden.

Ich habe dieses sehr schöne Skript für die Bereichsauswahl gefunden: Ссылка

und ich habe viele Skripte zum Zeichnen von Linien (und anderen Formen in JS) gefunden, konnte aber nicht finden, wonach ich suche.

Danke

    
Ranch 24.03.2010, 16:57
quelle

7 Antworten

17

Da es keine Standardmethode zum Zeichnen gibt, wenn Sie ältere Browser und IE unterstützen möchten, Sie müssen eine Bibliothek verwenden. Die Bibliothek wird die plattformübergreifenden Probleme des Zeichnens mit SVG oder Microsofts VML

behandeln

Ich empfehle Raphael JS

    
The Who 24.03.2010, 17:00
quelle
3

raphael.js ist ein leichtgewichtiges Rendering-Tool für Javascript (MIT lizensiert), das in FF, Safari, Chrome und IE6 + funktioniert.

Es verwendet SVG für die ersten 3 und VML für IE, aber die API ist über Browser hinweg sehr ähnlich und sehr süß.

Ссылка

z.B.

%Vor%

Ich habe es verwendet, um beim Ziehen eine Linie zu zeichnen und kann für seine Benutzerfreundlichkeit bürgen

    
plodder 25.03.2010 01:42
quelle
1

Verwenden Sie das Element canvas , um das Bild anzuzeigen. Dann ist das Zeichnen einer Linie (oder irgendetwas anderes) trivial.

    
Eli Bendersky 24.03.2010 17:00
quelle
1

Wenn Ihre Mathematik gut genug ist, ist es möglich (obwohl verrückt), es ohne den Canvas-Tag für die meisten modernen Browser zu machen, die (falls zutreffend) eines verwenden:

Durch Erstellen von zB. ein 1px hohes div, mit z. ein Rahmen-Top für Ihre 'Linie', und mit der Maus ziehen Ereignis zu positionieren und zu drehen.

Wahnsinn liegt auf diese Weise , aber es wäre eine ziemlich lustige Übung. (Sie sollten etwas wie Raphael JS verwenden, das cross browser und sane ist - siehe oben)

    
adamnfish 24.03.2010 19:27
quelle
1

Ich arbeite an etwas ähnlichem. Das Zeichnen einer Linie auf einer Leinwand ist ziemlich einfach. Sie können von meinem Code hier nehmen.

Ссылка

Folgen Sie einfach dem mousedown Listener.

Obwohl ich beim Laden von Bildern festgestellt habe, dass die Raphael-Bibliothek besser zu verwenden ist. Ich habe das gesehen, weil Canvas sich wie ein flaches Bild verhält. Wenn ich also ein Ziel hinzufügen möchte, dann erlaube es dem Benutzer, dieses Bild zu manipulieren, es lässt mich nicht (es sei denn, es gibt etwas, das ich vermisse).

Mit Raphael können Sie diese Zeichnungen und Bilder als Objekte zeichnen und verwenden.

    
pfunc 19.04.2010 23:07
quelle
1

Eine browserübergreifende Lösung zum Zeichnen von Zeilen in JavaScript ohne externe Bibliotheken finden Sie hier: Ссылка

Dies funktioniert in allen Browsern, einschließlich IE.

    
Benubird 14.12.2010 15:13
quelle
0

Wenn Sie unterstützt werden, können Sie Canvas verwenden, in IE verwenden Sie die Funktion filter rotate. Wie hier funktioniert bei beiden:

Ссылка

    
user1164035 15.02.2012 17:53
quelle

Tags und Links