Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
programme:eos:faq [2017/10/04 10:40] martinprogramme:eos:faq [2021/12/29 11:40] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== FAQ ======
 +Bis ich Zeit finde, eine systematische Anleitung zu erstellen, finden Sie hier Antworten auf häufig gestellte Fragen.
 +
 +
 +===== Transformation mehrerer Objekte gleichzeitig (Verwendung von Gruppen!) =====
 +Will man mehrere Objekte gleichzeitig transformieren (z.B. drehen), so geht das mit Hilfe eines Objektes der Klasse GRUPPE. Ein solches Objekt kann beliebig viele andere Objekte (auch andere Gruppen!) enthalten. Jede Transformation einer Gruppe wirkt auf alle Objekte, die in der Gruppe enthalten sind.
 +
 +Das Hinzufügen von Objekten zu einer Gruppe geschieht mit Hilfe der Methoden schlucke(Objekt o) bzw. kopiere(Objekt o) der Klasse GRUPPE. Hier ein Beispiel, an dem leicht klar wird, wozu das ganze gut ist:
 +
 +|{{gruppenbeispiel_0.png|Ausgangssituation}}|{{gruppenbeispiel_1.png|Drehen der Rechtecke einzeln}}|{{gruppenbeispiel_2.png|Drehen der Gruppe}}|
 +|  Ausgangssituation  |  Drehen der Rechtecke einzeln  |  Drehen der Gruppe  |
 +<code pascal>
 +r1:RECHTECK
 +r2:RECHTECK
 +
 +g:GRUPPE
 +
 +r2.verschieben(30,0)
 +r2.füllfarbeSetzen(gelb)
 +
 +wiederhole 360 mal
 +   r1.drehen(1)
 +   r2.drehen(1)
 +*wiederhole
 +
 +g.schlucke(r1)
 +g.schlucke(r2)
 +
 +wiederhole 360 mal
 +   g.drehen(1)
 +*wiederhole
 +</code>
 +
 +
 +===== Was ist der Unterschied zwischen "schlucke" und "kopiere"? =====
 +Anhand eines Beispiels wird der Unterschied am einfachsten klar:
 +{{  :programme:eos:eos_unterschied_kopiere_schlucke.png}}
 +<code pascal>
 +r1:RECHTECK
 +r2:RECHTECK
 +g1:GRUPPE
 +
 +r2.verschieben(30,0)
 +r1.füllfarbeSetzen(gelb)
 +r2.füllfarbeSetzen(rot)
 +
 +g1.schlucke(r1)
 +g1.kopiere(r2)
 +
 +g1.verschieben(0,30)
 +</code>
 +Der Methodenaufruf %%g1.schlucke(r1)%% bewirkt, dass das Objekt %%r1%% zum Gruppe-Objekt %%g1%% hinzugefügt wird. Das Objekt wird also Bestandteil der Gruppe. \\
 +
 +Der Methodenaufruf %%g1.kopiere(r2)%% bewirkt, dass **eine Kopie** des Objekts %%r2%% zur Gruppe %%g1%% hinzugefügt wird. Das Objekt r2 wird selbst nicht Bestandteil der Gruppe. Offenbar wird der Unterschied, wenn am Ende des Programms die Gruppe %%g1%% um 30 Pixel nach oben verschoben wird: das Objekt r2 bleibt zurück. Nur seine Kopie wird als Bestandteil der Gruppe %%g1%% um 30 Pixel nach oben verschoben. Rechts ist der Endzustand der graphischen Programmausgabe zu sehen.
 +
 +
 +====== Warum läuft EOS nicht auf MAC-Rechnern? ======
 +EOS ist in Delphi 6 geschrieben und läuft leider nur auf Windows Betriebssystemen. Für plattformübergreifende Programmierung (Java) war zum Zeitpunkt der Entwicklung (ca. 2004) mein damaliger Rechner einfach zu langsam.
 +
 +Die einzige Möglichkeit, EOS auf einem Mac zum Laufen zu bringen, bestünde darin, Windows (z.B. XP) in einer virtuellen Maschine (z.B. VirtualBox) zu installieren. Ob sich der Aufwand lohnt, ist aber fraglich. 
 +
 +====== Wie kann ich den Hintergrund ändern? ======
 +Sobald man ein Objekt instanziert, z.B. mit
 +<code>
 +r: Rechteck
 +</code>
 +instanziert EOS ein Zeichenfenster, weist ihm das Objekt (hier: ''r'') zu und öffnet es. Alle weiteren instanzierten Objekte werden demselben Zeichenfenster zugewiesen. Dies erleichtert Programmieranfängern den Einstieg in EOS, hat aber den Nachteil, dass es im Programm keine Variable gibt, mit der man das FENSTER-Objekt ansprechen kann. Möchte man Eigenschaften des FENSTER-Objekts ändern, so muss man es im Programm instanzieren und ihm alle Objekte zum Zeichnen zuweisen:
 +<code>
 +f:FENSTER
 +r:RECHTECK
 +
 +f.hintergrundfarbeSetzen(grün)
 +f.gitteraus()
 +
 +f.zeichne(r)
 +</code>
 +Erst nach dem Ausführen der Anweisung ''f.zeichne(r)'' erscheint das Rechteck im Zeichenfenster.
 +
 +
  
Drucken/exportieren
QR-Code
QR-Code programme:eos:faq (erstellt für aktuelle Seite)