Hallo,
Ich habe eine Frage zu der Funktion draw.lines(). Kann man die Linie die man gezeichnet hat wieder rückgängig machen?
Linien löschen
Welches Toolkit verwendest du denn? Pygame, PyOpenGL, Zumbitsu2000, ...?blob hat geschrieben:Ich habe eine Frage zu der Funktion draw.lines(). Kann man die Linie die man gezeichnet hat wieder rückgängig machen?
Welches auch immer es ist, ich gehe ziemlich sicher davon aus, dass das nicht geht, da die Daten wahrscheinlich als Bitmap und nicht als Vektoren vorliegen. Du musst also vorher das Image in dem Zustand retten in dem es war und es dann gegebenenfalls wieder herstellen.
Ich benutze Pygame. Ich habe ein Programm das auf Mausklicks reagiert und dann eine Linie zu der Mausposition zeichnet. Ich wollt eigentlich mit der Taste Space die zuletzt gezeichnete Linie löschen. Gibt es keinen Befehl der das Programm einen Schritt zurück gehen lässt, so was wie STRG + Z.
@blob: Nein gibt es nicht. Überleg Dir mal die Konsequenzen für so etwas bei Programmen die das nicht benötigen. Jede Änderung müsste dann den Inhalt des `Surface` vor der Änderung zwischenspeichern.
Nein. So etwas wie STRG-Z muss man grundsätzlich selber implementieren.blob hat geschrieben:Ich benutze Pygame. Ich habe ein Programm das auf Mausklicks reagiert und dann eine Linie zu der Mausposition zeichnet. Ich wollt eigentlich mit der Taste Space die zuletzt gezeichnete Linie löschen. Gibt es keinen Befehl der das Programm einen Schritt zurück gehen lässt, so was wie STRG + Z.
Du kannst allerdings einen Ansatz wählen den ich auch schon mal verwendet habe. Merke dir nicht das Aussehen des Bildes, sondern die Aktionen die zum aktuellen Aussehen geführt haben. Du hättest dann z.B. eine Liste in der Sachen stehen wie [Linie von x1,y1 nach x2,y2, Kreis mit Radius z an der Position x3, y3, Linie von x1,y2 nach x4,y4].
Du kannst dann vom Anfang an jeden einzelnen Schritt wiederherstellen.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du malst die Linie eben neu...blob hat geschrieben:Könnte man die Farbe der Linien, denn im Nachhinein ändern? Also bei einem weißen Bildschirm zum Beispiel Space drücken und dann wird die Linie weiß?
Ich hab noch eine Frage. Wie kann ich etwas reagieren lassen wenn man mit der linken Maustaste klickt?
Ich habe es so versucht:
if event.type == MOUSEBUTTONDOWN:
pygame.draw.line(screen,farbe,(x.y),mouse_pos)
Das Problem ist das auch bei einem Klick auf die rechte und mittlere Maustaste, eine Linie gezeichnet wird. Wie kann ich das ändern?
Ich habe es so versucht:
if event.type == MOUSEBUTTONDOWN:
pygame.draw.line(screen,farbe,(x.y),mouse_pos)
Das Problem ist das auch bei einem Klick auf die rechte und mittlere Maustaste, eine Linie gezeichnet wird. Wie kann ich das ändern?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich würde mal hier gucken:
http://www.pygame.org/docs/ref/mouse.html
Kurz noch: Wenn Du ein neues Problem hast, dann eröffne einen neuen Thread. So wird niemand durch die ursprüngliche Überschrift auf die Maus-Probleme aufmerksam.
http://www.pygame.org/docs/ref/mouse.html
Kurz noch: Wenn Du ein neues Problem hast, dann eröffne einen neuen Thread. So wird niemand durch die ursprüngliche Überschrift auf die Maus-Probleme aufmerksam.