Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:math:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


api:documentation:math:start [2024/08/31 10:03] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== Die Klasse Math ======
 +<WRAP center round info 60%>
 +Die Klasse ''Math'' enthält viele statische Methoden und statische Attribute (z.B. ''Math.PI'') zur Berechnung mathematischer Funktionen. "statisch" bedeutet: Man benötigt kein ''Math''-Objekt, um diese Methoden aufzurufen, sondern schreibt vor die Methode einfach die Klasse, z.B.
 +<code myJava>
 +double w = Math.sqrt(12);
 +</code>
 +um die Quadratwurzel von 12 zu errechnen und den Wert der Variable w zuzuweisen. Einen Überblick über alle statischen Methoden und Attribute der Klasse ''Math'' erhältst Du am einfachsten, indem Du in ein Programm tippst ''Math.''. Es öffnet sich dann das Fenster zur Code-Vervollständigung, in dem Du alle Methoden/Attribute siehst. \\ \\ 
 +Natürlich kannst Du auch einfach in der [[https://www.online-ide.de/api_documentation.html|API-Dokumentation]] nachsehen. \\ \\ 
 +Hier findest Du [[:einstieg:weiteredatentypen:start#die_klasse_math| ein paar Beispiele zur Verwendung der Klasse Math.]]
 +</WRAP>
 +
 +====== Die Klasse String ======
 +<WRAP center round info 60%>
 +Variablen des Datentyps ''String'' können beliebige Zeichenketten speichern, [[:einstieg:weiteredatentypen2:start#string|Näheres dazu hier.]]
 +</WRAP>
 +
 +====== Die Klasse MathTools ======
 +Die Klasse ''Math'' der Java-API beschränkt sich auf die mathematischen Grundfunktionen (sin, cos, tan, pow, round, ...). Zusätzliche Funktionen, insbesondere zu Geometrie-Problemen, findest Du in der Klasse MathTools.
 +
 +==== MathTools.intersectCircleWithPolygon ====
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 90%" data-java-online="{'withBottomPanel': false, 'id': 'IntersectCircleWithPolygon', 'speed': 'max'}">
 +
 +<script type="text/plain" title="IntersectCircleWithPolygon.java">
 +println("Bewege den Kreis mit den Pfeiltasten!");
 +
 +Circle c = new Kreis1(400, 300, 100);
 +
 +class Kreis1 extends Circle {
 +   Polygon p;
 +   Group intersectionPoints = new Group();
 +   public Kreis1(double mx, double my, double radius) {
 +      super(mx, my, radius);
 +      p = new Polygon(false, 10, 10, 500, 300, 500, 550, 400, 400, 100, 200, 10, 10);
 +      intersectionPoints.bringToFront();
 +      calculateIntersections();
 +   }
 +
 +   void calculateIntersections() {
 +
 +      Vector2[] points = MathTools.intersectCircleWithPolygon(getCenterX(), getCenterY(), getRadius(), p.getHitPolygon());
 +      intersectionPoints.destroyAllChildren();
 +      for(Vector2 point : points) {
 +         Circle p = new Circle(point.x, point.y, 5);
 +         p.setFillColor(Color.red);
 +         intersectionPoints.add(p);
 +      }
 +
 +   }
 +
 +   public void act() {
 +      boolean calc = false;
 +      if(isKeyDown(Key.ArrowRight)) {
 +         move(3, 0);
 +         calc = true;
 +      } 
 +      if(isKeyDown(Key.ArrowLeft)) {
 +         move(-3, 0);
 +         calc = true;
 +      } 
 +      if(isKeyDown(Key.ArrowUp)) {
 +         move(0, -3);
 +         calc = true;
 +      } 
 +      if(isKeyDown(Key.ArrowDown)) {
 +         move(0, 3);
 +         calc = true;
 +      } 
 +      if(calc) {
 +         calculateIntersections();
 +      }
 +   }
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>