Linienzug
alex
- javascript
Hallo,
dank eurer Hilfe in den letzen beiden Wochen bin ich schon fast am Ziel angelangt.
Es geht nun darum daß ich gezeichnete Linien per Knopfdruck (schritt zrück) um einen Klick zurückversetzen kann (a la "history.back"). Ich bin auch schon Ansatzweise dahintergekommen wie ich das machen könnte, nur happert es jetzt daran daß er mir die beiden Arrays die mit X und Y Werten befüllt sind nochmals zeichnet.
Vielleicht kann sich daß ja mal wer ansehen, ich poste den Link da der Code lang und unübersichtlich ist.
http://fluid.devcon.cc/grid/test6_3.htm
Herzlichen Dank schon mal,
alex
Hallo nochmals,
ich hab das Problem jetzt ziemlich primitv gelöst - kann sich von den JS Experten jemand mal den Code ansehen? Ich glaub richtig performant ist das ganze nicht, vielleicht hat ja jemand noch den ein oder anderen Tip für mich parat, danke.
Alex
Hallo nochmals,
Ich hatte dir in dem alten Thread eine neue Lösung vorgeschlagen.
Da sind ein paar Optimierungen drin (z.b. nicht jedesmal setColor und setStroke audrufen).
Deine Lösung mit drawLine() finde ich besser als meine du kannst dir aber noch die Variabeln sparen:
L = myY.length;
jg_doc.drawLine(myX[L-2], myY[L-2], myX[L-1], myY[L-1]);
Struppi.
Hallo nochmals,
Ich hatte dir in dem alten Thread eine neue Lösung vorgeschlagen.
Da sind ein paar Optimierungen drin (z.b. nicht jedesmal setColor und setStroke audrufen).
werd ich gleich mal checken - danke
Deine Lösung mit drawLine() finde ich besser als meine du kannst dir aber noch die Variabeln sparen:
L = myY.length;
jg_doc.drawLine(myX[L-2], myY[L-2], myX[L-1], myY[L-1]);
Allgemein zur Performance: ist es sehr viel langsamer wenn ich so viele variablen definiere? bzw. ist es generell schneller wenn ich innerhalb eines Funktionsaufrufes solche "Afragen / Routinen" wie bei jg_dic,drawLine(....) absetzte?
danke, alex
Deine Lösung mit drawLine() finde ich besser als meine du kannst dir aber noch die Variabeln sparen:
L = myY.length;
jg_doc.drawLine(myX[L-2], myY[L-2], myX[L-1], myY[L-1]);Allgemein zur Performance: ist es sehr viel langsamer wenn ich so viele variablen definiere? bzw. ist es generell schneller wenn ich innerhalb eines Funktionsaufrufes solche "Afragen / Routinen" wie bei jg_dic,drawLine(....) absetzte?
a. nein (nicht sehr viel)
b. ja (generell)
Ich find die Lösung aber in erster Linie besser, weil es einfach unötig ist nochmal zusätzliche Varaibeln zu definieren.
Die Geschwindigkeit dabei ist aber mit Sicherheit vernachlässigbar. Die "Zeichenfunktionen" sind sehr Zeitintensiv, da JS nicht zeichnen kann und diese Bibliothek DIVs in das Dokument eingefügt. Das ganze ist zwar optimiert soweit wie möglich (wie aus der Doku hervorgeht) trotzdem kostet die Erzeugung und Positionierung relativ viel Zeit.
Struppi.
hallo,
Die Geschwindigkeit dabei ist aber mit Sicherheit vernachlässigbar. »» Die "Zeichenfunktionen" sind sehr Zeitintensiv, da JS nicht zeichnen »» kann und diese Bibliothek DIVs in das Dokument eingefügt. Das ganze »» ist zwar optimiert soweit wie möglich (wie aus der Doku hervorgeht) »» trotzdem kostet die Erzeugung und Positionierung relativ viel Zeit.
Das war mir schon vorher bewußt daß daß eigentlich keine "handfeste" Lösung für etwas Größeres wird. Für den Bereich hier (ein paar linien auf einer grafik visualisieren) sollte es jedoch reichen. Die Grundvorgaben lauteten aber: kein Plugin (SVG etc.), keine Frames, keine Cookies, also halt HTML und was mittels JS machbar ist. Was anderes als die Lösung mit den DIV´s hab ich leider nicht gefunden bzw. wirds auch nicht geben.
Eine Frage noch: Wenn der user bei mir auf den [Schritt zurück] Button klickt, dann reduziere ich die beiden Arrays (X/Y Koordinaten) einfach jeweils um den letzten Eintrag, lösche das zuvor gezeichnete und lasse dann den ganzen Linienzug auf einmal zeichnen.
Dies ist meiner Meinung nach schon eher Zeitaufwendig, vor allem wenn man schon mehrere "Linien" gezeichnet hat.
Gibts hierzu einen Verbesserungsansatz?
Danke nochmals, Alex
Eine Frage noch: Wenn der user bei mir auf den [Schritt zurück] Button klickt, dann reduziere ich die beiden Arrays (X/Y Koordinaten) einfach jeweils um den letzten Eintrag, lösche das zuvor gezeichnete und lasse dann den ganzen Linienzug auf einmal zeichnen.
Dies ist meiner Meinung nach schon eher Zeitaufwendig, vor allem wenn man schon mehrere "Linien" gezeichnet hat.
Gibts hierzu einen Verbesserungsansatz?
Nein. Wie du in meinem Beispiel siehst habe ich es genauso gemacht. In der Doku findet sich nur die clear() Funktion um alles zu löschen, keine Möglichkeit nur Teile zu löschen.
Struppi.
Nein. Wie du in meinem Beispiel siehst habe ich es genauso gemacht. In der Doku findet sich nur die clear() Funktion um alles zu löschen, keine Möglichkeit nur Teile zu löschen.
Struppi.
Alles klar, sowas hab ich mir schon fast gedacht.
Wie hast du das vorhin gemeint mit color und linienstärke definieren? ich hab das irgenwie nicht mehr gefunden.
Wie schaut das eigentlich mit Quellangaben aus? Das ganze hätt ich ja ohne deine (eure) Hilfe garnicht hingebracht....gibts hier so etwas wie eine SELFHTML Quelle die ich angeben kann, möcht das halt schon irgenwie festhalten daß es nit so ganz allein von mir kommt.
alex
Wie hast du das vorhin gemeint mit color und linienstärke definieren? ich hab das irgenwie nicht mehr gefunden.
http://javascript.jstruebig.de/test/koordinaten.html
Die Funktion init()
Wie schaut das eigentlich mit Quellangaben aus? Das ganze hätt ich ja ohne deine (eure) Hilfe garnicht hingebracht....gibts hier so etwas wie eine SELFHTML Quelle die ich angeben kann, möcht das halt schon irgenwie festhalten daß es nit so ganz allein von mir kommt.
Naja, der größte Anteil dürfte von Walter Zorn kommen, der Rest sind ein paar Zeilen, wovon ja auch ein bisschen von dir ist ;-)
wegen mir kannst du darauf verzichten.
Struppi.
Wie hast du das vorhin gemeint mit color und linienstärke definieren? ich hab das irgenwie nicht mehr gefunden.
http://javascript.jstruebig.de/test/koordinaten.html
Die Funktion init()
alles klar, jetzt blick ich durch - danke :O)
Wie schaut das eigentlich mit Quellangaben aus? Das ganze hätt ich ja ohne deine (eure) Hilfe garnicht hingebracht....gibts hier so etwas wie eine SELFHTML Quelle die ich angeben kann, möcht das halt schon irgenwie festhalten daß es nit so ganz allein von mir kommt.
Naja, der größte Anteil dürfte von Walter Zorn kommen, der Rest sind ein paar Zeilen, wovon ja auch ein bisschen von dir ist ;-)
wegen mir kannst du darauf verzichten.
Den Quellcode von Walter Zorn samt Autoreneintrag lass ich natürlich so wie er ist, und in Bezug auf eure Hilfe wird mir schon was einfallen. Ich bin auf jeden Fall dankbar daß Ihr mir geholfen habt und so viel Geduld aufbringen konntet :O)