Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:grafik3d:transformationen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
api:documentation:grafik3d:transformationen:start [2025/01/11 20:14] – angelegt martinapi:documentation:grafik3d:transformationen:start [2025/01/12 07:36] (aktuell) – [3D-Grafik: Transformationen] martin
Zeile 1: Zeile 1:
 ====== 3D-Grafik: Transformationen ====== ====== 3D-Grafik: Transformationen ======
 +<WRAP center round info 80%>
 +Jedes 3D-Object hat eine **Position**, eine **Breite/Höhe/Tiefe** und eine **Richtung im Raum**. Diese Größen lassen sich mit folgenden Methoden verändern:
 +<code java>
 +void move(double x, double y, double z)
 +void move(Vector3 v)
 +
 +void moveTo(double x, double y, double z)
 +void moveTo(Vector3 v)
 +
 +void lookAt(double x, double y, double z)    // Wird v.a. bei Kameras verwendet
 +void lookAt(Object3d target)                 // Wird v.a. bei Kameras verwendet
 +
 +void rotateX(double angleDeg)
 +void rotateY(double angleDeg)
 +void rotateZ(double angleDeg)
 +
 +void scaleX(double scale)
 +void scaleY(double scale)
 +void scaleZ(double scale)
 +void scale(Vector3 v)
 +void scale(double d)
 +
 +double getX()    // gibt die Position zurück
 +double getY()    // gibt die Position zurück
 +double getZ()    // gibt die Position zurück
 +
 +void destroy()   // zerstört das Objekt und gibt den Speicher frei
 +</code>
 +
 +Die **Position** eines 3D-Objekts ist meist der Diagonalenschnittpunkt seiner [[https://en.wikipedia.org/wiki/Minimum_bounding_box|Bounding-Box]]. Sie wird von den ''scale''-Methoden als Zentrum der Streckung verwendet.
 +
 +</WRAP>
 +
 +
 +===== Beispiele =====
 +<HTML>
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': '3d-transformations1', 'enableFileAccess': true}">
 +
 +<script type="text/plain" title="Test1.java">
 +SystemTools.setSpeed(500);
 +Box3d box = new Box3d();
 +double angle = 0;
 +while (true) {
 +   angle += 1;
 +   double y = 2 * Math.sin(angle / 180 * Math.PI);
 +   double x = 2 * Math.sin(2*angle / 180 * Math.PI);
 +   box.moveTo(x, y, 0);
 +   box.rotateY(2);
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
  
api/documentation/grafik3d/transformationen/start.1736626449.txt.gz · Zuletzt geändert: 2025/01/11 20:14 von martin