Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:inheritance:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
klassen2:inheritance:start [2020/12/13 21:45] – [Skizze:] Martin Pabstklassen2:inheritance:start [2022/02/17 10:34] (aktuell) – [Aufgabe: Starfield] Martin Pabst
Zeile 157: Zeile 157:
 <script type="text/plain" title="FlyingRectangle.java"> <script type="text/plain" title="FlyingRectangle.java">
 new World(800, 800); new World(800, 800);
 +SystemTools.setSpeed(200);
 +
 while(true) { while(true) {
    new FlyingRectangle();    new FlyingRectangle();
 } }
- 
  
  
Zeile 169: Zeile 170:
    public FlyingRectangle() {    public FlyingRectangle() {
       super(360, 760 - 40, 80, 80);       super(360, 760 - 40, 80, 80);
-      setFillColor(Math.round(Math.random() *(256 *256 * 256 - 1)), Math.random()*0.8+0.2);  // zufällige Farbe setzen+      setFillColor(Color.randomColor(50));  // zufällige Farbe setzen 
 +      setAlpha(Random.randdouble(0.2, 0.8)); // Zufällige opacity ("Undurchsichtigkeit"setzen
  
-      vx = Math.random() * 10 - 5; +      vx = Random.randdouble(-5,5)      // Zufallszahl zwischen -5 und 5 
-      vy = Math.random() * (-20) - 6;+      vy = Random.randdouble(-26, -6)   // Zufallszahl zwischen -26 und -6
  
    }    }
Zeile 251: Zeile 253:
 Die Geschwindigkeit der Sterne in x- und y-Richtung ist zufällig. Eine Zufallszahl zwischen bspw. 2 und 10 erzeugt man folgendermaßen: Die Geschwindigkeit der Sterne in x- und y-Richtung ist zufällig. Eine Zufallszahl zwischen bspw. 2 und 10 erzeugt man folgendermaßen:
 ``` ```
-vx = Math.random()*8 + 2; +vx = Math.randdouble(2, 10)
-vy = Math.random()*8 + 2;+vy = Math.randdouble(2, 10);
 ``` ```
-# Erklärung: +
-``Math.random()`` erzeugt bei jedem Aufruf eine "frische" Zufallszahl im Intervall [0;1[. Multipliziert man diese mit 8, so erhält man eine Zufallszahl im Intervall [0;8[. Addiert man 2 hinzu, so erhält man eine Zufallszahl im Intervall [2;10[.+
 </script> </script>
 <script type="text/plain" title="Tipp 4" data-type="hint"> <script type="text/plain" title="Tipp 4" data-type="hint">
Zeile 265: Zeile 266:
 Die Formel zur zufälligen Bestimmung der Geschwindigkeit in Tipp 3 hat einen Nachteil: Die Geschwindigkeiten haben nicht nur verschiedene Richtungen (gut!) sondern auch sehr unterschiedliche Beträge (schlecht!), d.h. die Sterne fliegen unterschiedlich schnell. Viel besser ist es, mit **Poloarkoordinaten** zu arbeiten, das heißt: Wir bestimmen zuerst den Betrag ``v`` der Geschwindigkeit zufällig, dann den Winkel ``w`` (also ihre Richtung). Danach berechnen wir aus ``v``und ``w`` die benötigten Komponenten ``vx``und ``vy``. Die Formel zur zufälligen Bestimmung der Geschwindigkeit in Tipp 3 hat einen Nachteil: Die Geschwindigkeiten haben nicht nur verschiedene Richtungen (gut!) sondern auch sehr unterschiedliche Beträge (schlecht!), d.h. die Sterne fliegen unterschiedlich schnell. Viel besser ist es, mit **Poloarkoordinaten** zu arbeiten, das heißt: Wir bestimmen zuerst den Betrag ``v`` der Geschwindigkeit zufällig, dann den Winkel ``w`` (also ihre Richtung). Danach berechnen wir aus ``v``und ``w`` die benötigten Komponenten ``vx``und ``vy``.
 ``` ```
-double v = Math.random()*8 + 2; // Betrag der Geschwindigkeit zwischen 2 und 10 +double v = Random.randdouble(2, 10); // Betrag der Geschwindigkeit zwischen 2 und 10 
-double w = Math.random()*2*Math.PI; // Winkel zwischen 0 und 2*PI+double w = Random.randdouble(0, 2*Math.PI); // Winkel zwischen 0 und 2*PI
 vx = v * Math.cos(w); vx = v * Math.cos(w);
 vy = v * Math.sin(w); vy = v * Math.sin(w);
Zeile 430: Zeile 431:
  
 </HTML> </HTML>
 +
 +===== Feuerwerk =====
 +Das Beispiel "Feuerwerk" [[:api:documentation:grafik:animation#beispiel_4feuerwerk|findest Du hier]].
  
klassen2/inheritance/start.1607892331.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki