Bild durch klicken kopieren?

Johanna shared this question 4 months ago
Answered

Hallo zusammen,


ich habe in meiner Geogebra-Datei ein Bild. Es ist fixiert und durch zwei Eckpunkte in Position und Größe definiert.

Nun möchte ich gern, dass wenn man das Bild anklickt, sich dieses an einer anderen Stelle dupliziert, dann nicht fixiert ist, also beweglich ist, aber die selbe Größe besitzt wie das original.


Ich habe schon die folgenden Befehle gefunden, kriege es aber nicht zusammengebaut.


BildNeu=KopiereFreiesObjekt(BildAlt)

SetzeFixiert(BildNeu, false )


Ich kenne auch den Befehl "SetzeKoordinaten", dann kann ich jedoch nur eine Koordinate von BildNeu verändern und das Bild erscheint dann größer als das Original.


Ich frage mich mittlerweile, ob es überhaupt möglich ist.

Könnt ihr mir helfen?

Best Answer
photo

https://www.geogebra.org/m/wqgvkd27


Es geht um Schafe ;-)

SchafNeu=CopyFreeObject(Schaf)

SetFixed(SchafNeu, false)

Rename(SchafNeu,Schaf+Ordinal(s))

s=s+1

Comments (9)

photo
1

Hey zusammen, der Beitrag war super lange im Prüfvorgang. Nun hab ich es zusammengebastelt bekommen. Auch wenn Geogebra scheinbar nicht grad dafür ausgelegt ist.

Falls jemand meine Lösung will, sage er gern Bescheid

photo
1

ja, ich bin interessiert.

photo
1

In meiner Datei ist nun das Bild, das ich kopieren möchte zweimal eingebunden. Einmal sichtbar und fixiert und daneben nicht sichtbar und fixiert.

Nun habe ich beim sichtbaren Bild geschrieben, dass wenn man es anklickt, das unsichtbare Bild kopiert werden soll und an der Stelle, wo das unsichtbare sich befindet erscheinen soll. Außerdem wird bei diesem neuen Bild die Fixierung aufgehoben.

Wenn ich nachher am computer sitze, schreibe ich nochmal den genauen Code und auch einfach einen Link zur Datei.

photo
1

https://www.geogebra.org/m/wqgvkd27


Es geht um Schafe ;-)

SchafNeu=CopyFreeObject(Schaf)

SetFixed(SchafNeu, false)

Rename(SchafNeu,Schaf+Ordinal(s))

s=s+1

photo
1

Ja, ein durchaus gangbarer Weg. Insbesondere dann, wenn man die Namen der generierten Schafe später noch rekonstruieren muss (zB um sie zu löschen).

Der Zusammenhang zwischen Schafen und Flächen hat sich mir nicht erschlossen.

Mit dem Befehl "Verschieben()" bestünde die Möglichkeit einen kürzeren Skript zu schreiben. Siehe Anhang.

photo
1

Hey danke,

aber beim Verschieben ist das Bild anschließend aus meiner Erfahrung kein freies Objekt mehr, sodass man es nicht mehr per Hand weiter verschieben kann.

Ich glaube, der Zusammenhang zwischen Schafen und Flächen ist für die Programmierung nicht so wichtig. Deshalb wundere ich mich über deinen Nachsatz.

photo
1

Ein hübsches Besipiel, das demonstriert, dass Erfahrung auch hinderlich sein kann.

photo
1

Jetzt habe ich mir gerade deine Datei anschauen können.

Ich bin einigermaßen verwundert, weil ich den Befehl "Verschiebe" auch benutzt habe.

Ich hatte aber angenommen, dass das Original anschließen verloren geht und nur die Verschiebung noch da ist, weshalb ich es zuerst kopiert und dann verschoben habe.

Danach war es aber nicht mehr möglich das Objekt per Hand zu verschieben.

Da scheine ich offenbar etwas übersehen zu haben, ich kann gar nicht mehr so recht rekonstruieren, an welcher Stelle.

So ist es natürlich viel einfacher. Danke!

photo
1

Ah, doch. Ich habs verstanden, was bei mir schief gelaufen ist.

Ich hatte am Ende unwissentlich drei Schafe. Eine Kopie auf dem ersten und die Verschiebung. Und als ich die Fixierung via Scripting von der Verschiebung auflösen wollte, habe ich die Fixierung des dritten Schafs, das ungesehen über dem Original lag gelöst, nicht aber die der Verschiebung. Da es jedoch keine Fehlermeldung gab, habe ich es nicht bemerkt und angenommen, dass die Verschiebung durch die vom Vektor definierte Position nicht mehr frei ist.

Nun lasse ich es so wie in meiner Lösung , weils aufs Gleiche rauskommt, aber beim nächsten Mal weiß ich mehr

© 2021 International GeoGebra Institute